如何将数字6.325四舍五入到小数点后两位在JAVA中是6.33.有人能解释一下吗?



根据官方java文档

RoundingMode HALF_EVEN:

舍入模式,向最近的邻居舍入,除非两个邻居距离相等,在这种情况下,向偶数邻居舍入。

既然这是等距邻居的情况,为什么它仍然四舍五入到6.33而不是6.32

public static void main(String[] args) {
DecimalFormat df = new DecimalFormat("0.00");
df.setRoundingMode(RoundingMode.HALF_EVEN);
System.out.println((df.format(6.325)));
}

我期望Half_EVEN舍入的输出为6.32,但结果却是6.33。

如有任何帮助,不胜感激

感谢

浮点数不能准确地表示某些数字(这里有很多关于如何处理这个问题的问题)。

最接近6.325的双精度数是6.32500000000000017763568394002504646778106689453125,这就是为什么它被四舍五入到6.33。

你可以搜索像"双精度浮动转换器在线"对于可以显示浮点数精确二进制表示的web服务。

相关内容

  • 没有找到相关文章

最新更新