Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
ShowAll Questionssorted byDate Posted
V QR

# Trigger Currency Conversion Display Wrong Decimal Places

Hi,
We have an object called "Project", and a project has its own currency, for instance ARS
There are 2 Number Fields that we use to get the conversion Rate between "Project Currency", EUR and \$
Exchange USD - Number Field (10,8)
Exchange EUR - Number Field (10-8)
We have a Trigger, to get the conversion Rate.

And we have Set Currency Exchange to 6 Decimal Places
But on "Exchange USD" and "Exchange EUR", Number are rounded to 2 Decimals.
Does anyone know how to avoid the rounded decimal to 2?
We need to see 8 decimals, not rounded.
Thanks,
V
sandeep sankhla
Hi,

Please share the code where you are converting or doing calculation using these 2 fields..
V QR

Hi Sandeep,
The code is the trigger you can see in the screenshot.
I copy and paste below

trigger trigger_Before_Proyecto on Proyecto__c (before insert,before update) {
Proyecto__c proyecto = trigger.New[0];
CurrencyConversion conversor = new CurrencyConversion();
conversor.populateMap(proyecto.Fecha_Inicio__c);
proyecto.Cambio_EUR__c = conversor.convertCurrency('EUR',proyecto.CurrencyIsoCode,1);
proyecto.Cambio_USD__c = conversor.convertCurrency('USD',proyecto.CurrencyIsoCode,1);
}

It makes the calculation, but rounded to 2 decimals. And we need to see 8 decimal places.

Thanks,
V

Sourabh Khosla
Hi Guys,

I need a little help . I am almost there ... but need a little hand-holding.  Agenda is to ALWAYS display the value converted in EUR - does not matter what the record currency is.

I am using this code below:

```trigger convertToEuro on CustomObject(before update) {

List<CurrencyType> currencyTypeList = [select id,IsoCode,ConversionRate from CurrencyType where isActive = true] ;

Map<String , Decimal> isoWithRateMap = new Map<String, Decimal>();

for(CurrencyType c : currencyTypeList) {

isoWithRateMap.put(c.IsoCode , c.ConversionRate) ;

}

for(CustomObject ce: trigger.new){

if(ce.CurrencyIsoCode != 'EUR' && isoWithRateMap.containsKey(ce.CurrencyIsoCode)){

ce.Amount_Converted__c = ce.ffps_iv__Amount__c/ isoWithRateMap.get(ce.CurrencyIsoCode);

}

}```

It is doing everything fine except the fact that the Amount_Converted__c field's values are displayed as USD (& EUR) but EUR seems like display only value - the USD is what the Amount_Converted__c field is holding. I want to use Amount_Converted__c  converted in EUR in my workflow but instead I am getting the USD value - how could I just get the EUR value? I don't really need the Record Currency type - I need my EUR currency to be used in my workflows/approvals.