Board logo

标题: 帮看一下,乘法结果不对啊 [打印本页]

作者: lukou    时间: 2011-9-9 15:30     标题: 帮看一下,乘法结果不对啊

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时出现这种情况

谁能帮分析下是何原因?
作者: fwbook    时间: 2011-9-14 08:54

1# lukou


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

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

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




欢迎光临 万卷图书 (http://www.wanjuanchina.net/) Powered by Discuz! 7.2