System.out.println()一个浮点值,但我得到一个奇怪的结果

时间:2015-07-23 11:30:27

标签: java

 public class Myclass
 {
     public static void main(String[] args)
     {
        float  af=5.2345556f;
        System.out.println(af);
     }
 }

为什么结果是5.2345557而不是5.2345556?

1 个答案:

答案 0 :(得分:1)

因为,您无法以位为单位表示值5.2345556,因此将使用近似值。这是浮点运算的特征

  

将无数多个实数压缩成有限数量的位   需要近似的表示。虽然有无限的   许多整数,在大多数程序中,整数计算的结果都可以   存储在32位。

     

相比之下,给定任意固定位数,大多数计算用   实数会产生不可能精确的数量   使用那么多位来表示。因此结果一个   浮点计算通常必须舍入才能适应   进入有限的表示。这个舍入误差是   浮点计算的特征。