Python不会打印超过12个有效数字.如何更轻松地打印?

wow*_*cha 2 python pi

我正在制作一个计算器而我想使用pi但是python只是将pi缩短到12 dp并且我想要整个pi.

我在一个名为的文件中有一个简单的代码getpi.py:

def getpisend():
   pi=*pi to a million places*
return pi
Run Code Online (Sandbox Code Playgroud)

我用这段代码收到它:

import getpi
print getpi.getpisend()
Run Code Online (Sandbox Code Playgroud)

但它只打印这个:

3.14159265359

如何使其打印所有一百万个数字而不使其成为字符串.因为那时我不能在计算器中使用它.我已经尝试将其更改为字符串,然后返回到浮点数但得到此错误:

Traceback (most recent call last):
File "use-pi.py", line 2, in <module>
print (int(pifunc.getpisend()))
ValueError: invalid literal for int() with base 10:3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381
Run Code Online (Sandbox Code Playgroud)

`编辑:执行此操作可能很愚蠢,因为它实际上并不可用,因为您必须编写/打印大量数据,但这有助于我更好地理解python!特别感谢@qxz展示理论!

sir*_*rfz 6

用途decimal.Decimal:

In [57]: f = decimal.Decimal('3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359
    ...: 408128481117450284102701938521105559644622948954930381')

In [58]: f
Out[58]: Decimal('3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381')

In [59]: f.to_eng_string()
Out[59]: '3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381'
Run Code Online (Sandbox Code Playgroud)

  • 您使用`Decimal`对象而不是字符串进行计算. (2认同)