首页 > 解决方案 > python中的溢出错误?

问题描述

有一个 OverflowError: int too large to convert to float at

l = (number // 10)*n

这是什么意思以及如何解决?

这就是整个代码

def main():
    count = 0
    n = 10
    t = int(input())
    arr = []
    for i in range(t):
        number = int (input())
        print(number)
        while number != 0:
            l = (number // 10)*n
            print(l)
            if l != 0:
                count += 1
                arr.append(l)
            number = number / 10
            n = n * 10
        print(count)
        print(arr)


if __name__ == '__main__':
    main()

标签: pythonoverflow

解决方案


while循环运行时,数值的变化不会影响while条件。所以你必须break循环使用if-else.

def main():
    count = 0
    n = 10
    t = int(input())
    arr = []
    for i in range(t):
        number = int (input())
        print(number)
        while True:
            l = (number // 10)*n
            print(l)
            if l != 0:
                count += 1
                arr.append(l)
            number = number / 10
            n = n * 10
            if int(number) == 0:
                break
        print(count)
        print(arr)


if __name__ == '__main__':
    main()

输出:

2
25
25
20
0.0
1
[20]

推荐阅读