Есть ли способ построить 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   
*/
Другие вопросы по тегам