
关于java中浮点数不能精确运算的问题。1.5×2.5能够精确运算,但是1.4×1.6就不能精确运 10
关于java中浮点数不能精确运算的问题。1.5×2.5能够精确运算,但是1.4×1.6就不能精确运算,理论上1.4和1.6都不能用二进制精确表示,他们的结果应该是失真的,...
关于java中浮点数不能精确运算的问题。1.5×2.5能够精确运算,但是1.4×1.6就不能精确运算,理论上1.4和1.6都不能用二进制精确表示,他们的结果应该是失真的,但是我发现在小数点不超过四位时,浮点数的乘法运算并没有像减法那样失真?这是为什么?
展开
1个回答
展开全部
一些数值都不能用二进制精确表示, 计算的结果又不是很失真.
我觉得有两种可能(只是猜测):
参与运算的两个数都失真了, 一个增加了一点点, 另一个减少了, 运算的结果反而没有失真多少
运算的结果确实失真了, 但是它是小数点后很多位才失真, 取前面几位的时候刚好是一个很接近运算结果的值
另外真要搞清楚原理可能要研究数在计算机中的表示, 计算机对各种数学的运算是怎么处理的, java是不是改进过这种运算.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询