我想要的是一种将双精度数转换为使用半数方法四舍五入的字符串的方法 - 即,如果要四舍五入的小数是 5,它总是向上舍入到下一个数字。这是大多数人在大多数情况下所期望的标准舍入方法。
我也希望只显示有效数字 - 即不应该有任何尾随零。
我知道这样做的一种方法是使用以下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 中实现这一目标的最佳方法是什么?