Java中有一个关于小数四舍五入的好问题here https://stackoverflow.com/questions/153724/how-to-round-a-number-to-n-decimal-places-in-java。但我想知道如何在程序中包含尾随零来显示价格,例如:$1.50、$1.00
简单的解决方案是
String.format("%.2g%n", 0.912385);
工作得很好,但如果它位于小数点最后一位,则省略尾随零。即使我只使用这样的表达式,问题也会出现在我的程序中:
double price = 1.50;
当我用不同的价格进行计算(加法、乘法等)时,结果主要显示如下:
$2.5000000000000003
因此,使用 String.format 可以很好地达到此目的,但它会将上面的示例截断为
$2.5
有没有正确的方法来显示小数点后第二位的尾随零?或者如果计算的输出应该是两个零
$2.00
我建议您这样做:
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
double price = 2.50000000000003;
System.out.println(currencyFormatter.format(price));
这也具有特定于区域设置的优点。例如,如果您位于欧元区而不是美国,这将起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)