C語言代碼規範(六)浮點型變量邏輯比較

無論是float還是double類型的變量,都有精度限制。所以一定要避免將浮點變量用"=="或"!="與數字比較,應該設法轉化成爲">="或"<="形式。

不建議使用的例子:

if(0.0 == x)
if(0.0 != x)

強烈推薦的例子:

//EPSINON是允許的誤差(精度)
if(x >= -EPSINON) && (x <= EPSINON)
if(x >= -EPSINON) || (x <= EPSINON)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章