2017-04-26 3 views
0

Javascriptで、私はMath.exp(-1800/2000)を試しました。結果は0.4065696597405991です。しかし、Javaでは、同じ関数が1.0を返しますか?私は文書を読み、JavaJavascriptのMath.expは基本的に同じことをします。 Javaでは

は、Math.expの(a)は返し:eは自然対数の底であるJavaのMath.expが正しく計算されませんか?

値e^A、。 // JavaScriptで

ジャワ

で、Math.expの(x)が返されます。

表す数E^X、eはオイラー数であり、xは 引数です。

多分初心者の間違いです。

+2

'-1800/2000'はJavascriptわから0ではありません。 '-1800.0/2000'を試してください – Eran

+0

私は実際にこれを持っています:' multiplier1 = Math.exp(-frequency/1300)* 1700'。したがって、int型の変数 '周波数'が明らかに間違っている理由です。 –

+0

はい、そうだと思います。私はあなたのコードを反映するために私の答えを編集しました。 – jjmontes

答えて

5

Javaの場合、-1800/2000は整数(0)になります。適切なタイプ(double)にキャストする必要があります。

試してみてください。

Math.exp(-1800.0/2000.0) 

またはあなたの場合:Javaで

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

ありがとう@RobinTopper。一定。 – jjmontes

関連する問題