如何在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中,浮点值的大小不能任意大,如果numberOverflowError则将引发。

您可以使用以下sys模块找到Python浮点值可以在您的系统上使用的最大值:

>>> import sys

>>> sys.float_info.max

1.7976931348623157e+308

要解决此限制,请改用//从两个整数的除法中获取一个整数:

number // 10

这将返回的int底值number / 10(不产生浮点数)。与浮点数不同,int在Python 3中,值可以根据需要的大小而定(在内存限制内)。

您现在可以将大数相除。例如,在Python 3中:

>>> 2**3000 / 10

OverflowError: integer division result too large for a float

>>> 2**3000 // 10

123023192216111717693155881327...

以上是 如何在Python中管理大数除法? 的全部内容, 来源链接: utcz.com/qa/398364.html

回到顶部