Java为什么小数运算会出现精度问题两个解决办法
话不多说直接上Demodouble a = 4.0;double b = 3.6;System.out.println(a - b);我们可以看到运行结果是0.3999999999999999,期望结果是0.4。原因简单来说:2进制的小数无法十分精准的表达十进制的小数,计算机在计算十进制小数运算的时候需要先转换成2进制进行计算,这个过程中出现了一些误差。两个解决办法办法一 使用 BigDecimal使用 BigDecimal 进行运算,需要注意的是初始化传值的时候务必使用.