java - NumberFormat 允许零或两位数字吗?

标签 java number-formatting

我像这样使用 Java NumberFormat:

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

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

如果价格是 19.50,我需要恰好获得两位数字,即 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);
    }

关于java - NumberFormat 允许零或两位数字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32565265/

相关文章:

java - 如何检查给定数字中是否存在有效的组分隔符?

java - Jboss登录并重定向到正确的url

java - 设置字符码表在ESC/POS打印机中打印非拉丁字符

java - 如果我的 java 应用程序停止工作,请关闭它

excel - 将日期转换为数字的公式

c++ - 如何打印仅小于另一个 double 值的 double 值?

java - 使用可执行 Jar 时找不到 Spring-Boot 资源

java - 为什么会崩溃?以及如何调试?

java - 在 Android 中使用 DecimalFormat 格式化数字

php - 强制 php 将数字显示为 0.000001 而不是 f 1.0E-6