小编ddy*_*yke的帖子

Python:如何保持 sqrt() 平方的准确性?

我认为这是一个受欢迎的问题,但我找不到答案:

当一个整数的平方根被平方时,我希望结果是一个整数,但我得到以下结果:

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
推荐指数
1
解决办法
1263
查看次数

标签 统计

python ×1