Python 如何检查float是否近似为整数

Python 如何检查float是否近似为整数,python,floating-point,Python,Floating Point,在Python中,如何检查一个浮点数是否近似为一个整数,以及用户指定的最大差值 我想到的是像是完整的(f,eps),其中f是有问题的值,eps是允许的最大偏差,结果如下: >>> is_whole(1.1, 0.05) False >>> is_whole(1.1, 0.2) True >>> is_whole(-2.0001, 0.01) True 我想出的一个解决办法是 def is_whole(f, eps): return

在Python中,如何检查一个浮点数是否近似为一个整数,以及用户指定的最大差值

我想到的是像
是完整的(f,eps)
,其中
f
是有问题的值,
eps
是允许的最大偏差,结果如下:

>>> is_whole(1.1, 0.05)
False
>>> is_whole(1.1, 0.2)
True
>>> is_whole(-2.0001, 0.01)
True

我想出的一个解决办法是

def is_whole(f, eps):
    return abs(f - round(f)) < abs(eps)
def是完整的(f,eps):
返回abs(f-圆形(f))
但我不确定是否有一种更像蟒蛇的方式来做到这一点

编辑


使用abs(eps)
而不仅仅是eps来避免无声的不当行为。

我想出的一个解决方案是

def is_whole(f, eps):
    return abs(f - round(f)) < abs(eps)
def是完整的(f,eps):
返回abs(f-圆形(f))
但我不确定是否有一种更像蟒蛇的方式来做到这一点

编辑


使用
abs(eps)
而不仅仅是
eps
来避免无提示的错误行为。

我可能会自己编写一个函数来实现这一点

def is_whole(f, eps):
    whole_number = round(f)
    deviation = abs(eps)
    return whole_number - deviation <= f <= whole_number + deviation
def是完整的(f,eps):
整数=四舍五入(f)
偏差=abs(eps)

返回整数值-偏差我可能会自己编写一个函数来实现这一点

def is_whole(f, eps):
    whole_number = round(f)
    deviation = abs(eps)
    return whole_number - deviation <= f <= whole_number + deviation
def是完整的(f,eps):
整数=四舍五入(f)
偏差=abs(eps)

返回整数值-偏差@HighPerformanceMark谢谢你的提示,我对函数做了一点修改。很难得到比自然单线更具pythonic的函数function@HighPerformanceMark谢谢你的提示,我对函数做了一点修改。很难在没有评论的情况下获得比自然的1行函数downvote更具Python风格的函数?那我就没办法改进了…不加评论的否决票?那我就没办法提高了。。。