BigDecimal: formatting currency amount

master
bvn13 2022-08-13 04:04:35 +03:00
parent 00bf9ed618
commit 9e5dc5797f
2 changed files with 31 additions and 9 deletions

View File

@ -22,16 +22,22 @@ public class BigDecimalExample {
// amount = amount.movePointLeft(2); // amount = amount.movePointLeft(2);
// System.out.println(amount); // System.out.println(amount);
BigDecimal amount = new BigDecimal("4.12"); // BigDecimal amount = new BigDecimal("4.12");
Currency eur = Currency.getInstance("EUR"); // Currency eur = Currency.getInstance("EUR");
System.out.println(amount + " " + eur); // System.out.println(amount + " " + eur);
MoneyDto moneyDto = new MoneyDto(amount, eur); // MoneyDto moneyDto = new MoneyDto(amount, eur);
System.out.println(moneyDto); // System.out.println(moneyDto);
//
// MoneyDto incomingUsd = MoneyDto.fromJson("514", "USD");
// System.out.println(incomingUsd + " -> " + incomingUsd.getAmount() + " " + incomingUsd.getCurrency());
// MoneyDto incomingTnd = MoneyDto.fromJson("5148", "TND");
// System.out.println(incomingTnd + " -> " + incomingTnd.getAmount() + " " + incomingTnd.getCurrency());
MoneyDto incomingUsd = MoneyDto.fromJson("514", "USD"); BigDecimal amount = new BigDecimal("4.120000");
System.out.println(incomingUsd + " -> " + incomingUsd.getAmount() + " " + incomingUsd.getCurrency()); System.out.println(amount);
MoneyDto incomingTnd = MoneyDto.fromJson("5148", "TND"); BigDecimal amount2 = new BigDecimal("4.120000");
System.out.println(incomingTnd + " -> " + incomingTnd.getAmount() + " " + incomingTnd.getCurrency()); Currency eur = Currency.getInstance("EUR");
System.out.println(NumberFormatHelper.currencyAmount(amount2, eur));
} }
static void fromInteger() { static void fromInteger() {

View File

@ -0,0 +1,16 @@
package me.bvn13.test.bigdecimal;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Currency;
public class NumberFormatHelper {
public static String currencyAmount(BigDecimal amount, Currency currency) {
final DecimalFormat df = new DecimalFormat("0");
df.setMaximumFractionDigits(currency.getDefaultFractionDigits());
return df.format(amount);
}
}