浮動小数点数の誤差
次のコードを実行したときの出力として、正しいものを1つ選べ。
print(0.1 + 0.2 == 0.3, round(0.1 + 0.2, 1) == 0.3)
- A
True True - B
True False - C
False True - D
False False
正解と解説を見る
正解:C
浮動小数点数の比較には、誤差を許容する math.isclose や np.isclose を使う。
| 順 | 実行する行 | 実行後の変数 |
|---|---|---|
| 1 | `print(0.1 + 0.2 == 0.3, round(0.1 + 0.2, 1) =…` | — |
| 結果 | 実際の出力 | False True |
- A
誤り。
0.1 + 0.2は 0.30000000000000004 になる。 - B
誤り。直接の比較が偽、丸めた比較が真。
- C
正しい。浮動小数点数は 2 進数で近似されるため、誤差が出る。丸めてから比較する。
- D
誤り。丸めると 0.3 に等しい。
このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。