gpt4 book ai didi

python - 按特定数字进行浮点精度比较

转载 作者:行者123 更新时间:2023-12-02 02:46:47 25 4
gpt4 key购买 nike

如何测试两个 float 在特定数字之前是否相同?

我试过了,

aa1 = 0.043403
aa2 = 0.043392
print(int(aa1*1000) == int(aa2*1000))
>> True

我想遵循这种方式,但我的数据包括 NAN 值,无论如何它都无法将其转换为介绍。我也尝试过 math.isclose 但它很棘手。

例如,我想保留 3 位数字并应用 math.isclose

aa3 = 0.013041
aa4 = 0.012545
aa6 = 0.012945

print(math.isclose(aa3, aa4, abs_tol = 0.0001))
>>Flase
print(math.isclose(aa3, aa5, abs_tol = 0.0001))
>>True

但是我想在这两种情况下都得到 False。

有什么简单的想法吗?

最佳答案

创建一个函数,它接受 2 个数字:ab,并且它有一个预设的阈值。如果ab之间的差异小于阈值,则返回True。

def isSame(a, b):
return abs(a - b) < treshold

其中treshold可以是 float 。 0.0001 将忽略第三位数字之后的值。或者将数字截取 3 位数字后的字符串,然后将其转换回浮点型。

编辑、截断方法:

def isSame(a, b, digit):
return float(str(a)[0:digit+2]) == float(str(b)[0:digit+2])

如果您的数字 = 3,我们会忽略第三位数字之后的所有数字。

关于python - 按特定数字进行浮点精度比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62656909/

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