gpt4 book ai didi

python - 浮点取模问题

转载 作者:太空宇宙 更新时间:2023-11-03 13:52:01 31 4
gpt4 key购买 nike

我在 Python 中对 float 求模时遇到问题。这段代码:

...
print '(' + repr(olddir) + ' + ' + repr(self.colsize) + ') % (math.pi*2) = ' + repr((olddir+self.colsize)
...

打印:

(6.281876310240881 + 0.001308996938995747) % (math.pi*2) = 2.9043434324194095e-13

我知道 float 并不精确。但我无法理解这一点。

我不知道它是否有任何关联,但 Google 计算器也无法处理此计算。这是 Google 计算器的输出:

(6.28187631024 + 0.001308996939) % (pi * 2) = 6.28318531

是什么导致了这个计算错误?我如何在我的 Python 程序中避免它?

最佳答案

使用 str() 打印 float 实际上打印的是数字的四舍五入版本:

>>> print repr(math.pi)
3.1415926535897931
>>> print str(math.pi)
3.14159265359

因此我们无法真正重现您的结果,因为我们不知道您在计算时使用的确切值。显然,olddir+self.colsize 的精确值略大于 2*math.pi,而您在 Google Calculator 中使用的四舍五入值的总和略小于比 2*math.pi

关于python - 浮点取模问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5997361/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com