【问题标题】:How can I specify the number of decimal places with NumberFormat in Java?如何在 Java 中使用 NumberFormat 指定小数位数?
【发布时间】:2018-12-22 12:40:04
【问题描述】:

让我们运行这段代码:

double number = 12345.678888;
String str1 = String.format(Locale.FRANCE, "%.10f", number);
String str2 = NumberFormat.getInstance(Locale.FRANCE).format(number);

System.out.println(str1);
System.out.println(str2);

输出将是:

12345,6788880000

12 345,679

但那些不是我想要的。我想用NumberFormat 指定小数位数,就像String.format() 可以做的那样。我也尝试过DecimalFormat,但我认为这不是答案。

如果我在编写 C# 代码,可以这样简单地完成:

string str = string.Format(new CultureInfo("fr-FR"), "{0:#,##0.0000000000}", number);

输出将是:

12 345,6788880000

如何在 Java 中实现同样的功能?

【问题讨论】:

    标签: java locale number-formatting string.format


    【解决方案1】:

    参考文档,NumberFormatsetMaximumFractionDigitssetMinimumFractionDigits,所以:

    NumberFormat formatter = NumberFormat.getInstance(Locale.FRANCE);
    formatter.setMaximumFractionDigits(10);
    formatter.setMinimumFractionDigits(10);
    String str2 = formatter.format(number);
    

    这给了我

    12 345,6788880000

    【讨论】:

    • 正如预期的那样!太感谢了! :)
    猜你喜欢
    • 2012-04-06
    • 1970-01-01
    • 2014-07-15
    • 2014-08-19
    • 2013-01-12
    • 2011-12-30
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多