Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 模与浮点数_Python_Modulus - Fatal编程技术网

Python 模与浮点数

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,

如何解释模数是通过说出“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
added
15
次=
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扩展了答案。