jsr354-ri
jsr354-ri copied to clipboard
Locale formatting displaying incorrect decimal digits based on locale
If I create a currency with 2 decimal places and then try format it in a locale with a country with no decimal places (eg. JAPAN), the USD amount gets displayed with no decimal digits.
Correct me if I am wrong but the locale in MonetaryAmountFormat using AmountFormatQueryBuilder is the locale in which we are displaying the MonetaryAmount and not necessarily the locale of the currency amount.
eg. of issue MonetaryAmount moneyAmount = Money.of(10.32, "USD"); MonetaryAmountFormat formatter = MonetaryFormats.getAmountFormat( AmountFormatQueryBuilder.of(Locale.JAPAN) .set(CurrencyStyle.SYMBOL) .build()); String testFormat = formatter.format(moneyAmount);
testFormat in this example would be shown as $10 What I am expecting is $10.32
Same is true the other way around. MonetaryAmount moneyAmount = Money.of(10, "JPY"); MonetaryAmountFormat formatter = MonetaryFormats.getAmountFormat( AmountFormatQueryBuilder.of(Locale.US) .set(CurrencyStyle.SYMBOL) .build()); String testFormat = formatter.format(moneyAmount);
testFormat is ¥10.00 What I am expecting is ¥10
We'll try to replicate that. What is the version of Moneta you are using?
Moneta version 1.4.2
I'm seeing the same behavior. Has there been any update on this issue? Thanks!