我想要的是一种将双精度浮点数转换为字符串的方法,该方法使用"四舍五入" - 即如果要舍入的小数为5,则始终向上舍入到下一个数字。这是大多数情况下人们预期的标准舍入方法。同时,只显示有效数字 - 即不应有任何尾随零。
我知道实现此功能的一种方法是使用String.format方法:
我知道实现此功能的一种方法是使用String.format方法:
String.format("%.5g%n", 0.912385);
返回值:
0.91239
这很不错,但它总是显示带有5位小数的数字,即使它们并不重要:
String.format("%.5g%n", 0.912300);
返回:
0.91230
另一种方法是使用DecimalFormatter
:
DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);
返回:
0.91238
不过,正如您所看到的,这里使用的是"半偶数"舍入法。也就是说,如果前一个数字是偶数,则会将其向下舍入。我希望的是:
0.912385 -> 0.91239
0.912300 -> 0.9123
在Java中实现这一目标的最佳方法是什么?