是否为小于1的数字定义了模运算符?

时间:2018-11-01 15:56:50

标签: python modulus

在数学上,50/10 = 5/1 = 0.5 / 0.1等。在所有情况下,答案均为5,其余应为零-可能带有数字噪声。但是,我发现一个非常令人困惑的不一致之处:

In [1]: 50.0/10.0, 50.0%10.0
Out[1]: (5.0, 0.0)

In [2]: 5.0/1.0, 5.0%1.0
Out[2]: (5.0, 0.0)

In [3]: 0.5/0.1, 0.5%0.1
Out[3]: (5.0, 0.09999999999999998)

In [4]: 0.05/0.01, 0.05%0.01
Out[4]: (5.0, 1.734723475976807e-18)

In [5]: 0.005/0.001, 0.005%0.001
Out[5]: (5.0, 0.0)

结果3与其他结果不一致。在不同版本的python,不同的操作系统和硬件的不同机器上,使用python 2和python 3,我得到的结果完全相同,直到最后一位数字。发生了什么事?

0 个答案:

没有答案