java - 精确到小数点后 20 位的黄金比例

标签 java decimal calculator

黄金比例是一种特殊的比例,与生物体各部分不同尺寸之间的比例有关。

在数学上,可以通过以下公式找到:
(1+平方根(5))/2)

通过使用任何一种数据类型,我都无法存储这样的值。 double 是最好的,但我无法使用它得到 20 位小数。

所以,我想,如果我能在计算后找到比率的最后一位数字,然后将它存储在某个变量中并继续这样做。最后,我可以通过一个接一个地连接小数位来完成它。

示例:从 1.61083 中,我将提取 3,0,8,0,1,6 并加入它。

我仍然遇到问题,因为即使在计算过程中它也没有使用如此准确的变量。

有人可以帮忙吗?

最佳答案

java.math.BigDecimal是你的路要走

BigDecimal.ONE.add(new BigDecimal(Math.sqrt(5))).divide(new BigDecimal(2))

表示您发布的公式,将返回 1.6180339887498949025257388711906969547271728515625

也就是小数点后49位

关于java - 精确到小数点后 20 位的黄金比例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21549551/

相关文章:

java - JScrollPane 无法检测到需要滚动的文本

java - 如何输入我的文件?

c - 小数点精度丢失,可能是格式问题? C程序设计语言

python - 为什么 float() 会切断尾随零?

java - 将 MBean 从 JBoss 4.x 移植到 JBoss 7

java - 在二维数组中切换数组大小需要不同的内存量

使用枚举常量时出现 C 错误

C 编程 : getchar() won't accept '+' or '-' for input, 但会接受 '*' 和 '/' 吗?

javascript - 如何制作互惠基金 - SIP 计算器?

javascript - 在 JS 中创建一个计算器并得到一个未定义的值。初级程序员