0

我写了一个计算 Pi 的程序。它使用double类型,因此在这种情况下它自然只将 Pi 计算到最多 16 位小数。

我正在尝试让我的代码采用BigDecimals类型,以便我可以将 Pi 计算为更精确的数字(即更多小数位)。

我的进度可以看到>>这里<<

我正在使用Madhava–Leibniz series来计算 Pi:

     Pi = 4/1 + (-4/3) + 4/5 + (-4/7) + 4/9 + ... + 4/n

在我的程序中,我做了这样的划分:

     currentTerm=(double)-4/oddTerm;

在我更新的代码中,我将其更改为:

    currentTerm = neg.divide(oddTerm, 10, RoundingMode.HALF_UP);

我希望这能给你一个想法或发生了什么。

我的问题是,在这个例子中,RoundingMode 的哪个枚举常量是最好的使用(或更准确?)......显然,如果我使用不同的,Pi 的输出会发生显着变化。这是一个完整的列表:

Java 文档表

另外,我是否正确使用 a scaleof10进行此计算以获得最精确?

谢谢你。

编辑 更改Scale为 100;给 Pi 100dp。ETC

4

2 回答 2

4

首先,仔细阅读 Javadoc。它包含很多示例,每个 RoundingMode 是如何工作的。

在真正的数学中,我们通常使用 HALF_UP,因为这是老师在学校教我们的方式。5.5 四舍五入为 6。 5.4 四舍五入为 5。

于 2013-08-08T20:47:46.723 回答
-1

没有任何。如果您将 PI 计算到大量小数位,则根本不应该四舍五入或缩放。你的问题真的没有意义。

于 2013-08-08T22:14:18.003 回答