2013-02-27 2 views
4

java에서이 코드를 실행하고 다음 오류가 발생했습니다. 필요한 int가 double으로 나타납니다.정밀도가 저하 될 수 있습니다.

public class UseMath{ 
public static void main(String[]args){ 
    int x = Math.pow (2,4); 
System.out.println ("2 to the power of 4 is" + x); 

} 
} 

도와주세요 ....

+1

이 경우 오류를 얻고있다 :

은 간단하게 이렇게? 다른 방법이 아닌 것이 확실합니까? 오라클은'Math.pow()'가 double을 취하고'ints '를 제공한다고 (http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html) – MikeTheLiar

+0

'x'를'double x = ... '로 선언하십시오. – SRy

답변

11

당신이 documentation을 살펴 경우, Math.pow()doubles을 기대하고 double를 반환 말한다. 이 함수에 int를 전달할 때 intdouble으로 캐스팅 (변환)하면 손실이 발생하지 않으므로 아무런 해를 끼치 지 않습니다. 그러나 값을 int에 할당하면 정밀도가 떨어질 수 있습니다.

int x = (int)Math.pow (2,4); 

또는

double x = Math.pow (2,4); 
+0

감사합니다. 출력을 얻었습니다. – Sandra

관련 문제