【关于浮点数存储的精度损失】
浮点数在内存中的存储机制和整型数不同,其有舍入误差,在计算机中用近似表示任意某个实数。这个实数由 一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法。所以浮点数在运算过程中通常伴随着因为无法精确表示而进行的 近似或舍入。但这种设计的 好处是可以在固定的长度上存储更大范围的数。
String fstr = "8.1999";
String dstr = "8.199999999999999";
System.out.println(Float.parseFloat(fstr));
System.out.println(Float.parseFloat(dstr));