math.pi没有给我好的值

eni9jsuy  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(327)

此问题已在此处找到答案

浮点数学坏了吗((30个答案)
3小时前关门了。
我用 math.pi 使用python:

import Decimal as dc
dc.getcontext().prec=100
pi = dc.Decimal(math.pi)

我得到:

3.141592653589793115997963468544185161590576171875

在互联网上,我得到:

3,141592653589793238462643383279502884197169399375

为什么python没有给出一个好的值?如何改善这种情况?
我试了试,也试了试 Decimal .

ao218c7q

ao218c7q1#

如python数学模块的注解和文档所示, math.pi 保存浮点值。浮点数在设计上是不准确的,因为有有限数量的位专用于保持精度。你可以阅读https://docs.python.org/3/tutorial/floatingpoint.html 了解float是如何表示的,以及在编程过程中这将如何影响您(使用所有语言,而不仅仅是python)。
如何获得pi的准确值?正如tom karzes提到的,您可以使用 Decimal 模块,并根据需要为其提供任意多的数字。让我们从https://www.angio.net/pi/digits/pi1000000.txt,您的代码如下所示: pi_30_decimal_places = Decimal("3.141592653589793238462643383279")

相关问题