在计算浮点数时,可以使用 decimal 或 fractions 模块来避免浮点数取整误差。这两个模块可以存储精确的浮点数值,而不会出现小数位截断或进位。例如:
import decimal
# 使用 decimal 模块
x = decimal.Decimal('0.1')
y = decimal.Decimal('0.2')
z = x + y
print(z) # 输出 0.3
# 使用 fractions 模块
import fractions
a = fractions.Fraction(1, 10)
b = fractions.Fraction(2, 10)
c = a + b
print(c) # 输出 3/10
以上代码中,使用 decimal 模块创建浮点数对象,确保精度和小数位数的准确性;使用 fractions 模块来实现更简单的分数运算。
上一篇:避免浮点数据中使用指数表示
下一篇:避免浮点数误差的算术比较