在Python中如何计算两个数是否足够接近?

2024-09-27 07:23:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个号码-

3.125000 MB和2.954880 MB。在

我想比较它们,它应该返回True,因为它们几乎是3兆字节。我怎么能在Python3里做到呢。在

我试着做math.isclose(3.125000,2.954880, abs_tol=0.1)。在

但是,这将返回False。我真的不明白怎么把宽容放在这里。在

math.isclose(3.125000,2.954880,  abs_tol=0.1). 

https://docs.python.org/3/library/math.html

^{pr2}$

我使用的是python3.5.2。在

预期结果是True。 实际结果是False。在


Tags: httpsorgfalsetruedocs字节htmllibrary
2条回答

您的绝对公差设置为0.1,因此差值必须小于0.1才能将它们视为相等;3.125000 - 2.954880是(四舍五入)0.17012,这太大了。在

如果你想让他们被认为是close,可以稍微提高你的容忍度,例如:

math.isclose(3.125000, 2.954880, abs_tol=0.2)

它将按您的预期返回True。在

函数math.isclose实际上是用来处理浮点不精确的。{2>你可以用它来适当地调整它。在

如果您不担心浮点不精确,比较它们的更好方法是显而易见的:

def equivalent(a, b):
    return abs(a-b) < 0.1

相关问题 更多 >

    热门问题