diff --git a/big-decimal/src/main/java/me/bvn13/test/bigdecimal/BigDecimalExample.java b/big-decimal/src/main/java/me/bvn13/test/bigdecimal/BigDecimalExample.java index e85e521..c963384 100644 --- a/big-decimal/src/main/java/me/bvn13/test/bigdecimal/BigDecimalExample.java +++ b/big-decimal/src/main/java/me/bvn13/test/bigdecimal/BigDecimalExample.java @@ -15,12 +15,20 @@ public class BigDecimalExample { // Currency tnd = Currency.getInstance("TND"); // System.out.println("TND:" + tnd.getDefaultFractionDigits()); +// BigDecimal amount = new BigDecimal("4.12"); +// System.out.println(amount); +// amount = amount.movePointRight(2); +// System.out.println(amount); +// amount = amount.movePointLeft(2); +// System.out.println(amount); + BigDecimal amount = new BigDecimal("4.12"); - System.out.println(amount); - amount = amount.movePointRight(2); - System.out.println(amount); - amount = amount.movePointLeft(2); - System.out.println(amount); + Currency eur = Currency.getInstance("EUR"); + System.out.println(amount + " " + eur); + MoneyDto moneyDto = new MoneyDto(amount, eur); + System.out.println(moneyDto); + + } static void fromInteger() { diff --git a/big-decimal/src/main/java/me/bvn13/test/bigdecimal/MoneyDto.java b/big-decimal/src/main/java/me/bvn13/test/bigdecimal/MoneyDto.java new file mode 100644 index 0000000..5cda25b --- /dev/null +++ b/big-decimal/src/main/java/me/bvn13/test/bigdecimal/MoneyDto.java @@ -0,0 +1,40 @@ +package me.bvn13.test.bigdecimal; + +import java.math.BigDecimal; +import java.util.Currency; + +public class MoneyDto { + + private final BigDecimal amount; + private final Currency currency; + + public static MoneyDto fromMinor(BigDecimal amount, Currency currency) { + return new MoneyDto(amount.movePointLeft(currency.getDefaultFractionDigits()), currency); + } + + public static MoneyDto fromJson(String amount, String cur) { + Currency currency = Currency.getInstance(cur); + return new MoneyDto(new BigDecimal(amount).movePointLeft(currency.getDefaultFractionDigits()), currency); + } + + public MoneyDto(BigDecimal amount, Currency currency) { + this.amount = amount; + this.currency = currency; + } + + public BigDecimal getAmount() { + return amount; + } + + public Currency getCurrency() { + return currency; + } + + @Override + public String toString() { + return "{" + + "\"amount\":" + amount.movePointRight(currency.getDefaultFractionDigits()) + + ", \"currency\":\"" + currency + "\"" + + '}'; + } +}