我想要的是一种将double转换为字符串的方法,该方法使用向上舍入法进行四舍五入-即,如果要舍入的小数点是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中实现这一点的最佳方法是什么?