【发布时间】:2013-03-05 23:22:39
【问题描述】:
您好,我在一段 java 代码中有以下等式:
double z = 0.002378 * (Math.pow((1 - (Math.pow(6.875, -6) * y)), 4.2561));
当我将 y 设置为非常大的值时,即200000 我得到Nan(不是数字)它在稍低的值下工作正常,130000
谁能告诉我这是为什么?
此外,我还尝试从原始 BASIC 程序中移植上述代码:
.002378*(1-(6.875*10^-6*ALT))^4.2561
我可能做错了吗? BASIC 代码中的操作顺序不是很明确
谢谢
【问题讨论】:
-
你知道
^是逻辑异或,而不是幂函数吗?您可能正在寻找Math.pow()方法。 -
该代码甚至无法编译。请发布您的真实代码。
-
这不是java代码,我用标准数学符号写了方程
-
添加了实际代码
-
好的,你应该检查
Math.pow的规则(并了解是什么情况导致它返回NaN):docs.oracle.com/javase/6/docs/api/java/lang/…。