-2

我的任务是计算黄金比例 (phi = (1+ sqrt(5))/2)。但是我需要用大约 50 个小数位/小数位来计算它,然后将结果四舍五入到 30 个小数位并在控制台上打印出来。我可以使用 BigDecimal 和 MathContext。有谁知道如何计算它?我现在迷路了。谢谢

4

2 回答 2

3

我不会试图为你解决你的问题!但是,我认为向您指出一个有希望的方向是查看 API: https ://docs.oracle.com/javase/9​​/docs/api/java/math/BigDecimal.html ,特别是构造函数: BigDecimal(BigInteger unscaledVal, int scale, MathContext mc) I相信如果您尝试使用这些对象,您就可以实现您的目标。注意: sqrt 仅BigDecimal在 Java 9 中添加。

祝你好运。

于 2020-04-29T22:59:38.327 回答
2

我在网上找到了这个。它可用于验证您的计算。

String goldenRatio = 
"1.61803398874989484820458683436563811772030917980576286213544862270526046281890" +
"244970720720418939113748475408807538689175212663386222353693179318006076672635";

您可以通过以下方式验证常规计算的正确性

  • 验证长度(不要忘记小数点和整数位)。
  • 验证它是否与提供的答案的某些初始部分匹配。

为了正常计算,我使用MathContext了 precision =30RoundingMode.HALF_UP.

这可能不适用于您预期的方式。如果您遇到问题,这里的人将能够提供帮助。

我强烈建议您在寻求任何其他帮助之前发布尝试。

于 2020-04-30T00:07:55.457 回答