<分区>
我只是想给大家展示一下在python中运行的结果。我无法解释。
>>> 1.0%1.0
0.0 (OK)
>>> 1.0%0.1
0.09999....
>>> 1.0%0.001
0.00999....
>>> 1.0 %0.0001
0.000999...
...等等。我需要一些能让我理解“x%y”的余数是否为 0.0 的东西,即“y”整除“x” N 次,其中 N 是一个整数。 由于之前的行为,我不知道如何设置可能的公差来确定余数是否接近 0。 有帮助吗?
<分区>
我只是想给大家展示一下在python中运行的结果。我无法解释。
>>> 1.0%1.0
0.0 (OK)
>>> 1.0%0.1
0.09999....
>>> 1.0%0.001
0.00999....
>>> 1.0 %0.0001
0.000999...
...等等。我需要一些能让我理解“x%y”的余数是否为 0.0 的东西,即“y”整除“x” N 次,其中 N 是一个整数。 由于之前的行为,我不知道如何设置可能的公差来确定余数是否接近 0。 有帮助吗?
最佳答案
作为this (long) response说,使用 decimal
模块:
>>> from decimal import Decimal
>>> Decimal('3.5') % Decimal('0.1')
Decimal('0.0')
>>> print(Decimal('3.5') % Decimal('0.1'))
0.0
>>> (Decimal(7)/2) % (Decimal(1)/10)
Decimal('0.0')
问题本质上是由于系统中 float 的表示,您可以在 Internet 上的任何地方以及响应链接中阅读有关该内容的内容。
关于python - Python 中 float 的余数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20830067/