如何在Python中管理大数除法?
我有一个100位数的数字,我试图将该数字的所有数字放入列表中,以便可以对其进行操作。为此,我使用以下代码:
for x in range (0, 1000): list[x] = number % 10
number = number / 10
但是我面临的问题是我遇到了溢出错误,例如浮点数/整数太大。我什至尝试使用以下替代方法
number = int (number / 10)
如何将这个巨大的数字除以整数类型的结果,即没有浮点数?
回答:
在Python 3中,number /
10将尝试返回float
。但是,在Python中,浮点值的大小不能任意大,如果number
大OverflowError
则将引发。
您可以使用以下sys
模块找到Python浮点值可以在您的系统上使用的最大值:
>>> import sys>>> sys.float_info.max
1.7976931348623157e+308
要解决此限制,请改用//
从两个整数的除法中获取一个整数:
number // 10
这将返回的int
底值number / 10
(不产生浮点数)。与浮点数不同,int
在Python 3中,值可以根据需要的大小而定(在内存限制内)。
您现在可以将大数相除。例如,在Python 3中:
>>> 2**3000 / 10OverflowError: integer division result too large for a float
>>> 2**3000 // 10
123023192216111717693155881327...
以上是 如何在Python中管理大数除法? 的全部内容, 来源链接: utcz.com/qa/398364.html