我正在运行以下功能来模拟潮流。
Math.log( (1000 * d) / ((1000 * d) - p )) / Math.log(1000/999);
我正在使用p
的不同值进行两次测试两者:
p = 1333
测试1:
d = 1000000
测试2:
d = 200000
在java中运行,都返回Infinity
如果我将等式放入谷歌,它会返回我期望的值。 (测试1为1386,测试2为162)
Google中的公式为
ln( (1000 * (1333)) / ((1000 * (1333)) - (200000) )) / ln(1000/999)
我做错了什么?
答案 0 :(得分:6)
您正在使用1000/999
执行Java的整数除法,这必须导致另一个int
,即1
。 1
的对数(任何基数)为0
,除以0
为Infinity
。
使用double
文字或将其中一个int
文字投放为double
:
Math.log(1000.0 / 999.0)
或
Math.log( (double) 1000 / 999)