Pythonの等価性について

Pythonでは何を等価だとみなすでしょうか。ここで詳しく書いていきます。

==演算子

==演算子はそのオブジェクトの内容が等しいかどうかを比較するためのものです。

floatに対する==演算子

x = 0.1 * 3
print(x == 0.3)
# False

上例は、わりと衝撃的なのですが、浮動小数演算の誤差から==が成り立たちません。そのため、float型に対して==で比較しないというのは(Pythonの悪しき)常識で、次のようにmath.isclose()を用います。

import math

x = 0.1 * 3
print(math.isclose(x, 0.3))

# True

(Visited 15 times, 1 visits today)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です