我想要的是一个方法,将一个双精度转换为一个字符串,使用半向上方法-即,如果要四舍五入的小数是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.912390.912300 -> 0.9123
在Java实现这一目标的最佳方法是什么?