我一直在尝试修复我的代码中的精度问题,这个问题导致了程序出错。我希望数值被按照我提供的精度呈现,但是似乎 Python 对数字进行了四舍五入。以下是示例:
x = 3069682093880544.81
print (x)
3069682093880545.0
x = Decimal(3069682093880544.81)
print (x)
3069682093880545
x = float(3069682093880544.81)
print(x)
3069682093880545.0
x = Decimal(str(3069682093880544.81))
print(x)
3069682093880545.0
3069682093880545.0
x = str(3069682093880544.81)
print(x)
3069682093880545.0
我想做的就是能够给变量分配精确的值,并在调用时提供相同的值。我做错了什么?
print([x/10 for x in range(30696820938805440,30696820938805450)])
轻松看到它。 - Mark Ransom