数字比较

基本类型 / 数字 / Double 和 Float

import math

a = 1.0
b = (0.3 * 3) + 0.1

# Wrong way to compare
is_equal1 = a == b
# is_equal1 is False

# Correct way: relative tolerance, 1e-09 by default
is_equal2 = math.isclose(a, b)
# is_equal2 is True

# Near zero isclose needs abs_tol
is_equal3 = math.isclose(0.0, 1E-12)
# is_equal3 is False
is_equal4 = math.isclose(0.0, 1E-12, abs_tol=1E-9)
# is_equal4 is True

print(f"{a = }")
print(f"{b = }")
print(f"{is_equal1 = }")
print(f"{is_equal2 = }")
print(f"{is_equal3 = }")
print(f"{is_equal4 = }")