永发信息网

判断浮点数是否相等的问题,到底用什么方法去判断

答案:1  悬赏:0  手机版
解决时间 2021-11-22 22:44
  • 提问者网友:人生佛魔见
  • 2021-11-22 12:05
判断浮点数是否相等的问题,到底用什么方法去判断
最佳答案
  • 五星知识达人网友:洎扰庸人
  • 2021-11-22 13:41
虽然比较两个数相等要用等于号,但是,由于计算机上的浮点数存储的规则的限制,导致数据的比较上要考虑浮点数的精度问题.

所以, 如果你允许数据的偏差在 0.001的话,那么,你可以
if ( a - b < 0.001) 认为a=b
当然,这个偏差本身是浮点数,所以,按照IEEE754的标准,但精度浮点数有效位最多小数点后7位。而双精度则是最多小数点后15位。因此,你指定的这个偏差要是“合理”的才行。

你使用浮点数来保存数值,并不表示你的业务上来的数据就肯定是7位精度,很可能是3位的精度,就比如我上面给你的例子,千分之一的精度。
当两个浮点数的差在我们可接受的精度范围内时,便可认为它俩是相等的。
这似乎有点像模糊数学的相等啊,比如3.24我可以近似认为是3.2,他们的差在0.05内。

如果你是编成的初学者,可以忽略我上面的回答,暂时使用 等于号比较即可。比如,C语言里的等于是 ==。只是,在某些情况下,虽然表面上看两个浮点数是一样的,但计算机会判断它们是不一样的,这个原因就是我上面回答的内容。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯