有没有办法从整个美分值构造 MonetaryAmount?

Is there a way to construct a MonetaryAmount from a whole cents value?

给定一个以整数表示的价格点,即 199 = .99,是否有 API 构造 MonetaryAmount 的方法?

一个简单的方法是将金额除以 100,但想知道是否有 API 方法可以做到这一点。

MonetaryAmount ma = Money.of(199, "NZD").divide(100);

我不确定这对你是否有用。不过它确实有效。

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   
*/

Money.ofMinor() 方法正是您要找的。

Obtains an instance of Money from an amount in minor units.
For example, ofMinor(USD, 1234, 2) creates the instance USD 12.34