我写了一个计算 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 的输出会发生显着变化。这是一个完整的列表:
另外,我是否正确使用 a scale
of10
进行此计算以获得最精确?
谢谢你。
编辑
更改Scale
为 100;给 Pi 100dp。ETC