如何在 Java 中将数字舍入为 n 个小数位
我想要的是一种将双精度值转换为字符串的方法,该字符串使用半上部方法进行舍入 - 即,如果要舍入的小数点为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中实现这一目标的最佳方法是什么?