您的位置:首页 > 其它

C陷阱与缺陷-浮点数和0比较

2018-03-28 13:05 239 查看
C语言中浮点数同0不能直接用==比较,只能看浮点数与0值的误差,原因如下:
float是浮点数,存的是近似值,当用来表示0的时候,有可能计算结果是0,但是由于精度问题,实际上存储的是一个和0很接近的值,而==做判断的话只要不是完全相等就返回假,所以用==判断float有可能出错。 



解决方法是定义一个宏作为精度比较



这样就OK了,同样的道理,浮点数与其他整数比较时也不能直接使用==号,而在是一定的精度范围内进行大小比较!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息