我认为这是一个受欢迎的问题,但我找不到答案:
当一个整数的平方根被平方时,我希望结果是一个整数,但我得到以下结果:
from math import sqrt
from decimal import Decimal
a = 5
b = sqrt(Decimal(a))
c = 2 * b ** 2
print(a, c)
if c.is_integer():
print('c is integer')
do something ...
else:
print('c is NOT integer')
Run Code Online (Sandbox Code Playgroud)
结果:
5 10.000000000000002
c is NOT integer
Run Code Online (Sandbox Code Playgroud)
我也试过不使用 decimal.Decimal() 但它也不起作用。解决这个问题的最佳方法是什么?上面的代码针对这个问题进行了简化,但如果可能的话,我想要一个通用的解决方案。我正在使用 Python 3.5。
python ×1