Math.pow()

드코미·2025년 8월 14일
post-thumbnail

Math.pow는 거듭제곱 함수다.
자바 표준 라이브러리 java.lang.Math안에 있고, 형태는 다음과 같다.

double Math.pow(double a, double b)   // a^b (a를 b제곱)
  • 반환형은 항상 double임에 주의해야한다. 만약에 정수 결과가 필요하면 캐스팅을 해야한다. -> int n = (int) Math.pow(10, 6); // 1_000_000 (단, 오버플로/정밀도 주의)

🥺 만약에 int형을 파라미터로 넣으면?

int a = 2, b = 10;
double d = Math.pow(a, b);   // OK. a,b가 자동으로 double로 승격됨

int나 long을 넣으면 자동으로 double로 형 변환(primitive widening) 되어 호출됩니다.

반환형은 항상 double 입니다.

🤔 int/long으로 결과를 받고 싶을 때 주의점

그냥 캐스팅하면 정밀도/범위 문제가 생길 수 있습니다.

int x = (int) Math.pow(2, 10);   // 1024 -> OK
int y = (int) Math.pow(2, 31);   // 2147483648 이지만 int 범위 초과 → 2147483647로 클램핑
  • double에서 int로 캐스팅은 0쪽으로 버림(truncate)/
  • 값이 int 범위를 벗어나면 최댓값/최솟값으로 클램핑됩니다. (크면 Integer.MAX_VALUE, 너무 작으면 Integer.MIN_VALUE)
  • NaN은 0으로 변환.
profile
할 수 있다!!!

0개의 댓글