Python 不会打印超过 12 位有效数字。如何更轻松地打印?
Python won't print more than 12 significant figures. How do I print more easily?
我正在制作一个计算器,我想使用 pi,但是 python 只是将 pi 缩短为 12 d.p。我想要整个圆周率。
我在名为 getpi.py
的文件中有一个简单的代码:
def getpisend():
pi=*pi to a million places*
return pi
我收到了这个代码:
import getpi
print getpi.getpisend()
然而它只打印这个:
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
`
编辑:这样做可能很愚蠢,因为它实际上不可用,因为您必须 write/print 加载数据,但这帮助我了解 python 更多!特别感谢@qxz 展示理论!
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'
我正在制作一个计算器,我想使用 pi,但是 python 只是将 pi 缩短为 12 d.p。我想要整个圆周率。
我在名为 getpi.py
的文件中有一个简单的代码:
def getpisend():
pi=*pi to a million places*
return pi
我收到了这个代码:
import getpi
print getpi.getpisend()
然而它只打印这个:
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
` 编辑:这样做可能很愚蠢,因为它实际上不可用,因为您必须 write/print 加载数据,但这帮助我了解 python 更多!特别感谢@qxz 展示理论!
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'