返回列表 发帖

帮看一下,乘法结果不对啊

public class And {
        public static void main(String[] args){
                int a = 14;
                double b= 3.7;
                double c= a*b;
                System.out.println(c);
               
        }

}

输出结果是51.800000000000004
a=其他数都没问题,只有=14时出现这种情况

谁能帮分析下是何原因?
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

1# lukou


这个因为计算机对浮点数表示存在不精确的问题。这种例子很少能碰到。这次竟然让你碰到了,真是运气。

这实际和计算机对小数的表示有关。由于计算机使用二进制的方式来存储数据。很多时候,十进制的数据无法用二进制的数字精确表示。这个时候,计算机结果就可能存在一定的偏差。只要这种偏差在允许的范围内,就可以了。

例如你这里的运算,误差度不超过百万份之一。所以是可以接受的。

TOP

返回列表