从浮点指南:
为什么我的数字(例如0.1 + 0.2)加起来不是一轮好0.3,而是得到一个像0.30000000000000004这样的怪异结果?
因为在内部,计算机使用的格式(二进制浮点数)根本无法准确表示一个数字,例如0.1、0.2或0.3。
编译或解释代码时,“ 0.1”已经舍入为该格式的最接近的数字,即使在计算之前,也会产生小的舍入误差。
您不使用,
float或者
double如果您需要数字来加总。使用
BigDecimal代替。

从浮点指南:
为什么我的数字(例如0.1 + 0.2)加起来不是一轮好0.3,而是得到一个像0.30000000000000004这样的怪异结果?
因为在内部,计算机使用的格式(二进制浮点数)根本无法准确表示一个数字,例如0.1、0.2或0.3。
编译或解释代码时,“ 0.1”已经舍入为该格式的最接近的数字,即使在计算之前,也会产生小的舍入误差。
您不使用,
float或者
double如果您需要数字来加总。使用
BigDecimal代替。