Python 如何检查float是否近似为整数
在Python中,如何检查一个浮点数是否近似为一个整数,以及用户指定的最大差值 我想到的是像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
是完整的(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风格的函数?那我就没办法改进了…不加评论的否决票?那我就没办法提高了。。。