ACM小技巧 - 解决浮点数判断容易出现的BUG

ACM小技巧 - 解决浮点数判断容易出现的BUG

问题如图,这里的 bmi 变量,如果算出来是浮点数 bmi = 18.400078,那么就会跑到 else 语句去,其实呢,它应该是 bmi = 18.4,只是计算机计算的时候二进制内在的问题。

所以,这里可以稍微改进下,这里只是举其中几种方法,方法很多。

  1. bmi < 18.5 即可。
  2. +0.00....05,然后取到前一位。
  3. API 自带处理保留小数。