Python 模与浮点数
如何解释模数是通过说出“a”可以达到“b”的多少倍,而不是通过乘法,只是通过相加 如果我们要从Python 模与浮点数,python,modulus,Python,Modulus,如何解释模数是通过说出“a”可以达到“b”的多少倍,而不是通过乘法,只是通过相加 如果我们要从1.3中找到20的模,它将加起来1.3+1.3+…+1.3=19.5,其中20-19.5将是0.5 但如果我们使用大家用模解释的公式,即除以和乘以,然后得到余数,我们就不会得到一个精确的数字,例如: 6%2=0和7%2=1因为6/2=3次和3*2=6,所以答案是0和1,但是如果我们使用20%1.3,这将是20/1.3=15.384615,15.384乘以1.3就是15.384615385*1.3=20,
1.3
中找到20
的模,它将加起来1.3+1.3+…+1.3=19.5
,其中20-19.5
将是0.5
但如果我们使用大家用模解释的公式,即除以和乘以,然后得到余数,我们就不会得到一个精确的数字,例如:
6%2=0
和7%2=1
因为6/2=3
次和3*2=6
,所以答案是0和1,但是如果我们使用20%1.3
,这将是20/1.3=15.384615
,15.384
乘以1.3
就是15.384615385*1.3=20
,因此这个公式是不正确的,并且无法表示模如何与浮点数一起工作,但是通过将1.3
相加,然后不传递20
,它将给出1.3
added15
次=19.5
<代码>20-19.5=0.5因此我们有一个精确的余数
我想知道这种方法是否正确,Python如何解释模数
20%1.3这将是20/1.3=15384615和15384
乘以1,3的时间为15384615385*1,3=20,因此该公式
不是真的
我想知道这种方法是否正确
你的计算不完整;因此结论是错误的
你必须取整数部分,即。E15乘以1.3,得到19.5,然后从20中减去。这将产生预期的0.5
有关Python的实现,请参见。它用来计算。输出表示形式由生成,它调用。我们使用C表达式
printf(%.17g\n),fmod(20,1.3))
得到相同的输出
浮点计算结果有时不精确,这并不奇怪。查看CPython源代码:。搜索
divmod
是的,我知道这个方法,但它仍然是浮动的,并且给出了0.49999333个数字,这不是“精确的”,因此如果你想对一个浮点数进行模化,你需要手动进行,并编写一个公式,我想知道python是如何操作模的,因为它不是0.5,而是0.4999933i扩展了答案。