2017-04-26 59 views
0

在Javascript中,我試過Math.exp(-1800/2000),結果是0.4065696597405991。但是,在Java中,相同的函數返回1.0?我讀了JavaJavascript中的文檔和Math.exp,基本上做了同樣的事情。

在Java中,Math.exp(一)返回:Java中的Math.exp計算不正確?

的值e^a,其中e是自然對數的底。 //在Java中

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

表示編號e^x,其中e是歐拉數,x是 參數。

也許這只是一個初學者的錯誤。

+2

在java中'-1800/2000'爲0不知道關於JavaScript。試試'-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) 

或者你的情況:

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

哎。感謝@RobinTopper。固定。 – jjmontes