我已经在评论中提出了这个问题:
如何将一个数四舍五入到Java小数点后n位。
我在试着把一个double转换成一个小数位数固定的字符串。 在上面的问题中,解决方法相当简单。 使用时
String.format("%.4g", 0.1234712)
我得到了预期的结果,一个四舍五入到4位的数字:
0.1435
但当小数点后面有零时:
String.format("%.4g", 0.000987654321)
这将返回:
0,0009877
看起来函数忽略了数字中的前导零。
我知道我可以定义一个新的DecimalFormat,但是我想要理解这个问题。 并学习一点语法。
使用%.4f
执行所需的舍入。 此格式说明符指示小数点后有4位数字的浮点值。 对此使用上半舍入,意思是如果要考虑的最后一个数字大于或等于五,它将向上舍入,任何其他情况都将导致向下舍入。
String.format("%.4f", 0.000987654321);
演示
%g
格式说明符用于指示显示科学记数法中的多少个有效数字。 前导零不重要,因此跳过它们。