如何测试两个浮点数在指定数字之前是否相同
我试过了
aa1 = 0.043403
aa2 = 0.043392
print(int(aa1*1000) == int(aa2*1000))
>> True
我想这样做,但我的数据包含NAN值,它无论如何都无法将其转换为intro。 我也试过数学,但很难
例如,我想保留到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
但我想在这两种情况下都是假的
有什么简单的想法吗
创建一个函数,该函数包含两个数字:
a
和b
,并且具有预设的阈值。如果a
和b
之间的差值小于treshold,则返回True其中
treshold
可以是浮点。0.0001将在第三位数字后忽略。或者在3位数字后将数字剪切为字符串,并将其转换回float编辑、截断方法:
我们忽略第三位之后的每个数字,以防您的
digit = 3
rel_tol
应该足够了:给出预期的
注意:第二次计算不处理两个相等的零:易于添加。不确定底流是否会影响它
您可以使用AssertalPosteQual轻松完成此任务 下面是代码
在你的情况下,它可以是
祝你好运
相关问题 更多 >
编程相关推荐