當我開始使用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
提交
取消