gpt4 book ai didi

基本减法中的 Python 错误?

转载 作者:太空狗 更新时间:2023-10-29 18:19:25 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Python rounding error with float numbers
python maths is wrong

我无法让 Python 正确执行减法 1 - 0.8 并对其进行赋值。它不断得出错误答案 0.19999999999999996。

我探索了一下:

sq = {}
sub = {}
for i in range(1000):
sq[str(i/1000.)+'**2']=((i/1000.)**2)
sub['1-'+str(i/1000.)]=(1.0-(i/1000.))

并发现此错误发生在 0 和 1 之间的一组随机 float 到小数点后第三位。当您对这些 float 求平方时,也会发生类似的错误,但对不同的子集。

我希望得到对此的解释以及如何让 Python 正确地进行算术运算。使用 round(x,3) 是我现在使用的解决方法,但它并不优雅。

谢谢!

这是我的 Python 2.7.3 shell 中的一个 session :

*** Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32. ***
*** Remote Python engine is active ***
>>> 1-0.8
0.19999999999999996
>>> print 1-0.8
0.2
>>> a = 1-0.8
>>> a
0.19999999999999996
>>> print a
0.2
>>> a = 0.2
>>> print a
0.2
>>> a
0.2
>>>

这是我输入几个在线解释器的代码:

def doit():
d = {'a':1-0.8}
return d

print doit()

和输出:

{'a': 0.19999999999999996}

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