【发布时间】:2015-06-10 12:07:45
【问题描述】:
我正在尝试打印出我正在使用的方程的值。等式是:
(2^k)/(k!)
我正在使用 Java 并使用浮点数,但是当 k 变大时会出现问题。随着它变大,等式的底部大大大于顶部。因此,您可以想象等式的极限将变为 0。但随着数字变小,它会超过 1 * 10^-31,一旦它似乎超过了该值,浮点数似乎会增加。我假设这个数字太小了,一旦它通过10^-31 Java 就会做出反应并使其成为一个更大的值。类似于如果一个浮点值超过Float.MAX_VALUE,它会转到-Float.MAX_VALUE。有谁知道如何解决这个问题?它弄乱了我想要完成的结果。
谢谢。
【问题讨论】:
-
如果你真的需要计算这么大的值,使用
BigInteger类或BigDecimal怎么样? -
问题不是“那么大”的价值,而是“那么小”的价值。此外,我正在使用 Java 的图形库来绘制等式值大小的线条。所以我也需要能够绘制价值
-
这是我需要完成的任务。我在 k 处绘制方程结果的长度。我不知道你的意思是不需要计算k。是的,我需要它来处理它所说的等式......我正在从 1 运行 k 到 n,其中 n 是指定的任何值。