作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个计算 Pi 的程序。它使用 double
类型,因此自然在这种情况下它只计算 Pi 最多 16 位小数。
我正在尝试允许我的代码采用 BigDecimals
类型,以便我可以将 Pi 计算为更精确的数字(即更多小数位)。
我的进步可见>> here <<
我使用Madhava–Leibniz 级数
来计算 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 的输出会发生显着变化。以下是完整列表:
此外,我使用 10
的 scale
进行此计算以获得最精确的精度是否正确?
谢谢。
编辑将Scale
更改为100;将 Pi 设为 100dp。等等
最佳答案
首先,仔细阅读Javadoc。它包含很多示例,说明每种 RoundingMode 的工作原理。
在真正的数学中,我们通常是HALF_UP,因为这就是老师在学校教我们的方式。 5.5 四舍五入到 6。5.4 四舍五入到 5。
关于java - RoundingMode 最准确的枚举常量(在 Java 中计算 Pi),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18135525/
我是一名优秀的程序员,十分优秀!