Java中的Math.exp计算不正确?

phu*_*win 0 javascript java math exp

在Javascript中,我尝试过Math.exp(-1800/2000),结果是0.4065696597405991.但是,在Java中,相同的函数返回1.0?我在JavaJavascript中阅读了文档和Math.exp 基本上做同样的事情.

在Java中,Math.exp(a)返回:

值e ^ a,其中e是自然对数的基数.//在Java中

在Javascript中,Math.exp(x)返回:

表示e ^ x的数字,其中e是欧拉数,x是参数.

也许这只是初学者的错误.

jjm*_*tes 5

在Java中,-1800/2000得到一个整数(0).你需要转换为合适的类型(double).

尝试:

Math.exp(-1800.0/2000.0)
Run Code Online (Sandbox Code Playgroud)

或者在你的情况下:

multiplier1 = Math.exp((double)-frequency / 1300.0) * 1700.0;
Run Code Online (Sandbox Code Playgroud)