原因: 二进制不能准确的表示十进制的浮点数. 由十进制转换二进制的方法可以知道: 如果最后一位不是0或5,长度是无限的. 解决: 转为bigdecimal进行运算.
再详尽一些的原因和示例: EffectiveJava中是这样写的.
第60条: 如果需要精确的答案,请避免使用float和double: