我想避免我的代码将接近整数误认为整数。例如,58106601358565889 的平方根为 241,053,109.00000001659385359763188,但是当我使用以下布尔测试时,58106601358565889 欺骗了我,让我认为它是一个完美的平方:
a = 58106601358565889
b = math.sqrt(a)
print(b == int(b))
精度不一定是问题,因为如果我重新检查,我会得到正确的(错误)结论:
print(a == b**2)
测试真整数与接近整数的更好方法是什么?math.sqrt 隐藏在我的代码中的另一个定义中,如果可能的话,我想避免插入平方根检查。如果这不是一个好问题,我深表歉意;我是 python 新手。