Python进行浮点数计算时存在着不够精确的问题。如下图:
其原因是Python在存储浮点数类型的数据时会存储一个近似的小数。解决方法为使用decimal模块。
decimal模块提供了一个数据类型Decimal用于浮点数计算,相比内置的浮点数类型float,Decimal这个类型有助于需要精确十进制表达的场合,或者用户希望计算结果与手算相符的场合。Decimal重现了手工的数学运算,这就确保了二进制浮点数无法精确保有的数据精度。
用一段简单的代码来说明:
from decimal import Decimal
def add(x,y):
return x+y
num1=Decimal(input())
num2=Decimal(input())
print(add(num1,num2))
其运算结果如下图: