如何在 Python 中打印大量数字? [复制]

Posted

技术标签:

【中文标题】如何在 Python 中打印大量数字? [复制]【英文标题】:How to print large numbers in Python? [duplicate] 【发布时间】:2019-08-11 14:49:43 【问题描述】:

在 Python 中除以 2 个大数时,输出为 1.5640891676957637e+308。如何打印整个号码?

【问题讨论】:

你的意思是每个数字吗?如果是浮点数,则不能,浮点数的精度有限。您可以将数字写为整数并使用整数除法//。但是,如果您通过将浮点数转换为整数来创建数字,则在创建数字时要小心。 docs.python.org/3/tutorial/floatingpoint.html 表明浮点数只能达到大约 16 位的精度。从理论上讲,您可以将浮点数转换为字符串,然后使用一些神秘的操作来磨出长除法,但这需要很长时间。例外情况是,如果大数字只有这么多有效数字,并且您可以找到重复的分数。 【参考方案1】:

这无法完成,因为这就是 float 类型所具有的所有精度。它会告诉您数字的前 16 位或其他数字和指数,但前 16 位之后的数字从未计算过,因为它们没有空间。

如果您想处理大量数字并基本上具有无限精度,就像使用 Python 的 integers 一样,请尝试使用 the SymPy library。

【讨论】:

【参考方案2】:
number_str = str(int(1.5640891676957637e+308))
print(number_str)

打印:

156408916769576373071379516999674270294758197183972476505692635672561429946607721482839700799900977784426920800145985096418278978450607600874550703086464871105809270941181641564392002031609107640705147719606017681794554578537463358952125037388161745430586972528713238507284919924435316681000630776819257180160

【讨论】:

这只是将舍入为 1.5640891676957637e+308 的众多整数之一...【参考方案3】:

您可以考虑标准库https://docs.python.org/3/library/decimal.html中的十进制数据类型@“十进制模块提供对快速正确舍入的十进制浮点运算的支持。它提供了优于浮点数据类型的几个优点...十进制数可以精确表示"

【讨论】:

以上是关于如何在 Python 中打印大量数字? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

MS Excel 2007:如何在每次打印输出后增加单元格中的数字

如何为python中的每个元素添加一个数字? [复制]

如何在 Swift 4 中的浮点数后打印 5 位数字,有没有最短的方法? [复制]

如何在 Swift 4 中的浮点数后打印 5 位数字,有没有最短的方法? [复制]

如何在python中打印/返回一个类? [复制]

如何在 Python 中更改打印颜色? [复制]