不可将浮点变量用“ ==” 或“ !=” 与任何数字比较 。千万要留意, 无论是 float还是 double类型的变量, 都有精度限制。
所以一定要避免将浮点变量用“ ==” 或“ !=” 与数字比较,应该设法转化成“ >=” 或“ <=” 形式。假设浮点变量的名字为 x,应当 将:
if (x == 0.0) // 隐含错误的比转化为:复制if ((x>=-EPSINON) && (x<=EPSINON))其中 EPSINON是允许的误差(即精度) 。
转化为:
if ((x>=-EPSINON) && (x<=EPSINON))其中 EPSINON是允许的误差(即精度) 。
其中 EPSINON是允许的误差(即精度) 。
收藏0 举报
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
时间类勋章
人才类勋章
发帖类勋章
等级类勋章
567
4082
56
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号