2017-04-26 19 views
0

자바 스크립트에서 Math.exp(-1800/2000)을 시도했으며 그 결과는 0.4065696597405991입니다. 그러나 Java에서 동일한 함수가 1.0을 반환합니까? 나는 서류를 읽고 JavaJavascript의 Math.exp는 기본적으로 같은 일을합니다. 자바

는 Math.exp은 (a) 리턴 : e는 자연 대수의 바닥Java의 Math.exp가 잘못 계산 되었습니까?

값 (E)^A,. // 자바 스크립트에서

자바

에, Math.exp (x는) 반환

나타내는 숫자 전자^X, e는 오일러의 수이고 x는 인수입니다.

어쩌면 초보자의 실수 일 수 있습니다.

+2

'-1800/2000' 자바 스크립트 확실하지 0입니다. '-1800.0/2000'을 시도하십시오 – Eran

+0

저는 실제로 이것을 가지고 있습니다 : multiplier1 = Math.exp (-frequency/1300) * 1700'. 그래서'int '변수의'frequency' 변수가 틀린 이유입니다. –

+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