PI中的数字位数不同

时间:2015-07-07 08:42:34

标签: python variables printing pi

我是Python的初学者,我对PI有疑问。

>>> import math
>>> p = math.pi
>>> print p
3.14159265359
>>> math.pi
3.141592653589793
  • 为什么两者的位数不同?
  • 如何在不使用Chudnovsky算法的情况下将Pi的值增加到更多小数位?

2 个答案:

答案 0 :(得分:13)

  

为什么两者的位数不同?

一个是__str__'计算',另一个是__repr__

>>> print repr(math.pi)
3.141592653589793
>>> print str(math.pi)
3.14159265359

print使用对象__str__的返回值来确定要打印的内容。只需math.pi使用__repr__

  

如何在不使用Chudnovsky算法的情况下将Pi的值增加到更多小数位?

您可以使用format()显示更多数字

>>> print "pi is {:.20f}".format(math.pi)
pi is 3.14159265358979311600

其中20是小数位数。 the docs

中的更多信息

答案 1 :(得分:3)

print函数在一定程度上完成了浮动。你可以改变多少,使用:

print "%1.<number>f" % math.pi

在这种特殊情况下:

print "%1.11f" % math.pi