如何在Java中使用NumberFormat指定小数位数?

让我们运行以下代码:


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中实现同一目标?


HUX布斯
浏览 445回答 1
1回答

蝴蝶刀刀

参考文档,NumberFormat具有setMaximumFractionDigits和setMinimumFractionDigits,因此:NumberFormat formatter = NumberFormat.getInstance(Locale.FRANCE);formatter.setMaximumFractionDigits(10);formatter.setMinimumFractionDigits(10);String str2 = formatter.format(number);那给我12 345,6788880000
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java