当我开始使用equals运算符比较两个float值时,我使用的代码查看工具会抱怨以下内容。正确的方法和方法是什么?有没有可以重用的辅助函数(commons- *)?描述无法使用equals(==)运算符比较浮点值说明由于使用舍入误差,因此使用相等(==)或不相等(!=)运算符比较浮点值并不总是准确的。建议比较两个浮点值,看它们是否接近。float a;float b;if(a==b){..}
3 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
IBM推荐使用除法而不是减法比较两个浮点数-这样可以更容易地选择适用于所有输入范围的epsilon。
if (abs(a/b - 1) < epsilon)
至于epsilon的值,我将使用Wikipedia表中5.96e-08给出的值,或者可能是该值的2倍。
添加回答
举报
0/150
提交
取消