数字格式允许零位还是两位数?

NumberFormat allow zero or two digists?

我这样使用 Java NumberFormat:

NumberFormat format = NumberFormat.getNumberInstance(locale);
format.maximumFractionDigits = 2;
String number = format.format(price);

当双精度值是:19.95 我将 19,95 正确本地化为德语格式。 当双精度值是:19.5 我得到 19,5 这是一个错误的格式。

如果价格是 19.50,我需要恰好得到两个 digist,即 19,50。 如果价格是 19.00,我需要得到零位数,即 19.

我该怎么做?

这对我有用:

    NumberFormat format = NumberFormat.getNumberInstance(Locale.GERMAN);
    format.setMinimumFractionDigits(2);
    format.setMaximumFractionDigits(2);
    double price = <your price>;
    int priceAsInt = (int)price;
    if(((double)priceAsInt) == price) {
        String number = String.valueOf(priceAsInt);
        System.out.println(number);
    } else {
        String number = format.format(price);
        System.out.println(number);
    }