【问题标题】:NumberFormat allow zero or two digists? [duplicate]NumberFormat 允许零个或两个数字? [复制]
【发布时间】:2015-12-10 11:34:19
【问题描述】:

我像这样使用 Java NumberFormat:

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

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

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

我该怎么做?

【问题讨论】:

标签: java number-formatting


【解决方案1】:

这对我有用:

    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);
    }

【讨论】:

  • 很好的答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
  • 1970-01-01
  • 1970-01-01
  • 2020-02-21
  • 1970-01-01
  • 2013-12-30
  • 2017-04-13
相关资源
最近更新 更多