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

Javascript Java中的Math.exp计算不正确?,javascript,java,math,exp,Javascript,Java,Math,Exp,在Javascript中,我尝试了Math.exp(-1800/2000),结果是0.4065696597405991。但是,在Java中,相同的函数返回1.0?我阅读了文档和Math.exp,基本上做了同样的事情。 在Java中,Math.exp(a)返回: 值e^a,其中e是自然对数的底//在爪哇 在Javascript中,Math.exp(x)返回: 表示e^x的数字,其中e是欧拉数,x是 争论 也许这只是初学者的错误。在Java中,-1800/2000产生一个整数(0)。您需要转换为合

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

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

值e^a,其中e是自然对数的底//在爪哇

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

表示e^x的数字,其中e是欧拉数,x是 争论


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

在Java中,
-1800/2000
产生一个整数(
0
)。您需要转换为合适的类型(
double

尝试:

或者在您的情况下:

multiplier1 = Math.exp((double)-frequency / 1300.0) * 1700.0;

在Java中,
-1800/2000
生成一个整数(
0
)。您需要转换为合适的类型(
double

尝试:

或者在您的情况下:

multiplier1 = Math.exp((double)-frequency / 1300.0) * 1700.0;

在java中,
-1800/2000
是0。不太清楚Javascript。试试
-1800.0/2000
我实际上有这样一个:
乘法器1=Math.exp(-frequency/1300)*1700
。所以很明显,变量
频率
类型
int
是不正确的原因。是的,我想就是这样。我编辑了我的答案以反映您的代码。在java
-1800/2000
中为0。不太清楚Javascript。试试
-1800.0/2000
我实际上有这样一个:
乘法器1=Math.exp(-frequency/1300)*1700
。所以很明显,变量
频率
类型
int
是不正确的原因。是的,我想就是这样。我编辑了我的答案以反映你的代码。哎哟。谢谢@RobinTopper。修正了,哎哟。谢谢@RobinTopper。固定的。