我已经在评论中提出了这个问题:
我正在尝试将 double 转换为具有固定小数位数的字符串。在上面的问题中,解决方案非常简单。使用时
String.format("%.4g", 0.1234712)
Run Code Online (Sandbox Code Playgroud)
我得到了预期的结果,一个四舍五入的数字:
0.1235
Run Code Online (Sandbox Code Playgroud)
但是当小数点后有零时:
String.format("%.4g", 0.000987654321)
Run Code Online (Sandbox Code Playgroud)
这将返回:
0,0009877
Run Code Online (Sandbox Code Playgroud)
看起来该函数忽略了数字中的前导零。
我知道我可以定义一个新的 DecimalFormat 但我想了解这个问题。并了解一些语法。
hev*_*ev1 12
使用%.4f执行您想要的四舍五入。此格式说明符表示小数点后 4 位的浮点值。为此使用半向上舍入,这意味着如果要考虑的最后一位数字大于或等于 5,则将向上舍入,任何其他情况将导致向下舍入。
String.format("%.4f", 0.000987654321);
Run Code Online (Sandbox Code Playgroud)
该%g格式说明用于指示如何在科学记数法许多显著的数字显示。前导零并不重要,因此它们被跳过。