BigDecimal: MoneyDto

master
bvn13 2022-08-13 03:42:16 +03:00
parent 2f6231da2c
commit 2dc117c978
2 changed files with 53 additions and 5 deletions

View File

@ -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() {

View File

@ -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 + "\"" +
'}';
}
}