gpt4 book ai didi

python - 如何最好地处理这个 Python 数值错误?

转载 作者:行者123 更新时间:2023-11-28 20:10:11 25 4
gpt4 key购买 nike

我的这段代码会抛出一个数学域错误异常:

v = -1.0

for i in range (201):
print acos (v)
v += 0.01

但是如果我把它改成这样,它就起作用了:

v = -100

for i in range (201):
print acos (v / 100.0)
v += 1

这是因为四舍五入吗?

如何在 Python 中最好地解决这个问题?或者我应该像上一个例子那样做吗?

最佳答案

如果你这样做:

>>> format(0.01, '.30f')
'0.010000000000000000208166817117'

您可以看到 0.01(作为 double float )比您在学校学到的数字 0.01 大。

所以,当你对它求和 100 次时,误差会变大:

>>> sum([0.01]*100)
1.0000000000000007

这足以给出数学域错误。

你能做什么?

  • 使用第二个代码
  • round() 减少小数点:

.

>>> round(1.0000000000000007, 13)
1.0

13 或 14 可能就足够了。

关于python - 如何最好地处理这个 Python 数值错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696676/

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