Kil*_*leR -1 java math logarithm
我正在运行以下功能来模拟功率流.
Math.log( (1000 * d) / ((1000 * d) - p )) / Math.log(1000/999);
Run Code Online (Sandbox Code Playgroud)
我正在做两个不同的p值测试
对彼此而言:
p = 1333
Run Code Online (Sandbox Code Playgroud)
测试1:
d = 1000000
Run Code Online (Sandbox Code Playgroud)
测试2:
d = 200000
Run Code Online (Sandbox Code Playgroud)
通过java运行,两者都返回Infinity
如果我将等式放入谷歌,它会返回我期望的值.(测试1为1386,测试2为162)
谷歌中的公式为
ln( (1000 * (1333)) / ((1000 * (1333)) - (200000) )) / ln(1000/999)
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
你正在执行Java的整数除法1000/999,它必须导致另一个int,即1.对数,任何基数,1是0,除以0得到你Infinity.
使用double文字或将其中一个int文字作为double:
Math.log(1000.0 / 999.0)
Run Code Online (Sandbox Code Playgroud)
要么
Math.log( (double) 1000 / 999)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
668 次 |
| 最近记录: |