关于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都不能用二进制精确表示,他们的结果应该是失真的,但是我发现在小数点不超过四位时,浮点数的乘法运算并没有像减法那样失真?这是为什么? 展开
 我来答
百度网友73035df
2015-05-20 · 超过11用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:23.9万
展开全部

一些数值都不能用二进制精确表示, 计算的结果又不是很失真.

我觉得有两种可能(只是猜测):

  1. 参与运算的两个数都失真了, 一个增加了一点点, 另一个减少了, 运算的结果反而没有失真多少

  2. 运算的结果确实失真了, 但是它是小数点后很多位才失真, 取前面几位的时候刚好是一个很接近运算结果的值

另外真要搞清楚原理可能要研究数在计算机中的表示, 计算机对各种数学的运算是怎么处理的, java是不是改进过这种运算.

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式