永发信息网

C/C++语言 浮点数比较大小

答案:2  悬赏:60  手机版
解决时间 2021-11-21 07:40
  • 提问者网友:自食苦果
  • 2021-11-20 14:24
C/C++语言 浮点数比较大小
最佳答案
  • 五星知识达人网友:孤独的牧羊人
  • 2021-11-20 15:55
浮点数比较大小,由于精度问题,所以直接比较有时可能会出错。
所以在比较的时候需要用一个很小的数值来进行比较。当二者差小于这个很小的数时,就认为二者是相等的了。这个很小的数,称为精度。
精度由计算过程中需求而定。比如一个常用的精度为1E-6.也就是0.000001.
所以对于两个浮点数a,b
如果fabs(a-b)<=1E-6,那么就是相等了。 fabs是求浮点数绝对值的函数。

类似的 判断大于的时候,就是if(a>b && fabs(a-b)>1E-6)。
判断小于的时候,就是if(a1E-6)。
全部回答
  • 1楼网友:深街酒徒
  • 2021-11-20 16:55
你输入-1.0和程序里写的-1.0都是通过C语言的浮点库转换的,结果自然相同。

所谓要不能直接用== !=判断是对于经过运算造成误差以后(而且也不是所有运算都会造成误差,比如-1.0 + -1.0 == -2.0这个肯定能成立,因为并没涉及误差问题)。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯