C语言中判断两实数相等为何不采用“a==b”?

来源:百度知道 编辑:UC知道 时间:2024/09/28 06:53:38
C语言采用这两实数的差的绝对值小于规定误差精度来判断

因为精度问题,实数在计算机中实际表示时存在误差。因此,相等的两实数,在计算机实际表示时可能不相等。
实际上,人工判断也会出现一样的问题。
例如,2的平方根,因为精度问题,可以写为1.4,也可以写为1.41,还可以写为1.414,实际是不相等了。

问题的根源在于,计算机中的数字都是用二进制表示的,而小数不能用二进制精确表示(十进制小数化为二进制的方法是乘2取整法,大家照此方法拿0.1试试,看能否精确表示),所以最终的结果也是不精确的。