Python 这些浮动结果的原因是什么?

Python 这些浮动结果的原因是什么?,python,python-3.x,floating-accuracy,Python,Python 3.x,Floating Accuracy,对于下面的代码,为什么第一个结果是小的十进制数,而第二个结果是0?我的主要问题是为什么额外的小数位会使第二个结果变成0。python在计算浮点数时,小数位数是否有限制 x=5.000000000000001 y=5 打印(x-y) x=5.0000000000000001 y=5 打印(x-y) 由于数据的存储方式,浮点并不总是精确的。它们需要四舍五入才能在实践中正常工作 x =5.000000000000001 y =5 print(round(x-y)) x =5.0000000000000

对于下面的代码,为什么第一个结果是小的十进制数,而第二个结果是0?我的主要问题是为什么额外的小数位会使第二个结果变成0。python在计算浮点数时,小数位数是否有限制

x=5.000000000000001
y=5
打印(x-y)
x=5.0000000000000001
y=5
打印(x-y)

由于数据的存储方式,浮点并不总是精确的。它们需要四舍五入才能在实践中正常工作

x =5.000000000000001
y =5
print(round(x-y))
x =5.0000000000000001
y =5
print(x-y)

将浮点数四舍五入并不是使它们“起作用”的正确方法