python - 将 "Infinite" float 转换为整数

标签 python int type-conversion infinite infinity

<分区>

我正在尝试检查一个数字是否是一个完美的正方形。但是,我正在处理非常大的数字,所以 python 出于某种原因认为它是无穷大的。它在代码返回“Inf”之前达到 1.1 X 10^154。无论如何要解决这个问题?这是代码,lst 变量只是保存了一堆非常非常非常非常大的数字

import math
from decimal import Decimal
def main():
for i in lst:
    root = math.sqrt(Decimal(i))
    print(root)
    if int(root + 0.5) ** 2 == i:
       print(str(i) + " True")

最佳答案

math.sqrt(Decimal(i)) 替换为 Decimal(i).sqrt() 以防止您的 Decimal 衰减为 float

关于python - 将 "Infinite" float 转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22734148/

相关文章:

python - Twisted Cyclone - 请求完成后如何写入redis

c - 争论需要双倍,但我需要 float ?

python - Python 是否支持自由间距的正则表达式?

python - 如何在Python退出时捕获信号并传递变量?

python - 将没有主键的 CSV 导入现有表

swift - 如何快速将浮点值转换为字节数组?

python - 如何映射字符串列表和整数列表并找到具有最大值的字符串

c++ - 将指针转换为 float ?

go - 为什么不能转换 Slice 类型?

c - C中int和char之间的数值运算