Math.exp in Java 计算错误?

Math.exp in Java calculates incorrectly?

在Java脚本中,我尝试了Math.exp(-1800/2000),结果是0.4065696597405991。但是,在Java中,同样的功能returns1.0?我阅读了 Java and Javascript 中的文档和 Math.exp 基本上做同样的事情。

在 Java、Math.exp(a) returns:

the value e^a, where e is the base of the natural logarithms. //in Java

在Java脚本中,Math.exp(x) returns:

A number representing e^x, where e is Euler's number and x is the argument.

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

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

尝试:

Math.exp(-1800.0/2000.0)

或者您的情况:

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