ACM小技巧 - 解決浮點數判斷容易出現的BUG

問題如圖,這裏的 bmi 變量,如果算出來是浮點數 bmi = 18.400078,那麼就會跑到 else 語句去,其實呢,它應該是 bmi = 18.4,只是計算機計算的時候二進制內在的問題。

所以,這裏可以稍微改進下,這裏只是舉其中幾種方法,方法很多。

  1. bmi < 18.5 即可。
  2. +0.00....05,然後取到前一位。
  3. API 自帶處理保留小數。