继续使用Python中的Float

use*_*676 3 python floating-point modulo

我只想向您展示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...
Run Code Online (Sandbox Code Playgroud)

... 等等.我需要一些东西让我能够理解'x%y'的余数是否为0.0,即'y'将'x'恰好分为N次,其中N是整数.由于之前的行为,我不知道如何设置一个可能的容差来确定剩余部分是否接近0.任何帮助?

Max*_*ant 6

正如这个(长期)响应所说,使用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')
Run Code Online (Sandbox Code Playgroud)

问题主要是由于系统中浮动的表示,你可以在因特网的各个地方以及链接的响应中阅读有关它的内容.