gpt4 book ai didi

python - 比较 Python 中的 float 给出错误的结果

转载 作者:行者123 更新时间:2023-12-04 07:44:54 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Is floating point math broken?

(30 个回答)


4 个月前关闭。




我有一个 Python 脚本,它将测量值保存在 csv 中文件。然后我阅读了 csv进入另一个 python 脚本,该脚本检查结果总和是否为 1.0 .我注意到我的比较脚本经常返回 false,即使我这样做 print(my_sum) ,打印结果为1.0 .类似地,使用 excel 对值求和得到正好 1.0 .
这是我的示例值:

x = 0.926119895097366
y = 0.0248330035844995
z = 0.0490471013181347
支票 if (x+y+z) == 1.0失败的。但是,当我这样做时 print(x+y+z) ,打印的值为 1.0 .同样,使用 excel 对这些值求和得到 1.0 .但是,当我在 Ipython 中运行求和时,结果是 1.0000000000000002 .是什么原因造成的?

最佳答案

对于算术运算结果等典型用例,您不能比较 equality due to rounding errors 的浮点数。 .
而是检查这两个数字是否非常接近。见 this对于替代方案。

关于python - 比较 Python 中的 float 给出错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67245698/

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