Есть ли способ построить MonetaryAmount из целого значения в центах?
Учитывая цену, представленную как целое число целых центов, т.е. 199 = $1.99
Есть ли метод API для построения MonetaryAmount
?
Одним из простых методов было бы разделить сумму на 100, но интересно, есть ли метод API для этого.
MonetaryAmount ma = Money.of(199, "NZD").divide(100);
2 ответа
Решение
Метод Money.ofMinor() - это именно то, что вы ищете.
Получает экземпляр
Money
от суммы в минорных единицах.
Например,ofMinor(USD, 1234, 2)
создает экземплярUSD 12.34
Я не уверен, если это полезно для вас. Это работает, хотя.
private void convert() {
DecimalFormat dOffset = new DecimalFormat();
DecimalFormat dFormat = new DecimalFormat("#,##0.00");
dOffset.setMultiplier(100);
String value2, value1;
String str;
try {
value1 = "0";
value2 = dFormat.format(dOffset.parse(value1));
System.out.println(value2);
value1 = "7";
value2 = dFormat.format(dOffset.parse(value1));
System.out.println(value2);
value1 = "04";
value2 = dFormat.format(dOffset.parse(value1));
System.out.println(value2);
value1 = "123";
value2 = dFormat.format(dOffset.parse(value1));
System.out.println(value2);
value1 = "123456";
value2 = dFormat.format(dOffset.parse(value1));
System.out.println(value2);
} catch (ParseException ex) {
ex.printStackTrace();
}
}
/* Output
0.00
0.07
0.04
1.23
1,234.56
*/