Math — 기본적인 수치 연산을 제공하는 클래스

Math — 기본적인 수치 연산을 제공하는 클래스

Math기본적인 수치 연산을 수행하는 메서드들을 포함하는 클래스예요. 지수·로그·제곱근·삼각 함수 같은 것을 제공해요.

출처: Java API Reference

본문

StrictMath의 일부 수치 메서드들과 달리, Math 클래스의 동등한 함수들의 모든 구현은 비트 단위로 동일한 결과를 반환하도록 정의되지는 않아요. 이 완화 덕분에 엄격한 재현 가능성이 필요 없는 곳에서 더 나은 성능의 구현을 허용해요.

기본적으로 Math의 많은 메서드는 단순히 StrictMath의 동등한 메서드를 호출해 구현돼요. 코드 생성기는 가능하면 플랫폼별 네이티브 라이브러리나 마이크로프로세서 명령어를 사용해 더 고성능의 Math 메서드 구현을 제공하도록 권장돼요. 그런 고성능 구현도 여전히 Math의 명세를 따라야 해요.

구현 품질 명세는 두 가지 속성, 즉 반환 결과의 정확도메서드의 단조성(monotonicity) 을 다뤄요. 부동소수점 Math 메서드의 정확도는 ulp(units in the last place) 단위로 측정돼요. 주어진 부동소수점 형식에서 특정 실수 값의 ulp는 그 수치 값을 둘러싼 두 부동소수점 값 사이의 거리예요.

final 클래스로, StrictMath와 구분되는 실용적 성능 중심의 수학 함수 모음이에요.

주요 메서드

  • abs(x) — 절댓값을 반환해요 (int, long, float, double 오버로드).
  • max(a, b)·min(a, b) — 더 큰/작은 값을 반환해요.
  • sqrt(double) — 양의 제곱근을 반환해요.
  • pow(double, double) — 첫 번째 인자를 두 번째 인자만큼 거듭제곱한 값을 반환해요.
  • exp(double)·log(double)·log10(double) — 지수, 자연로그, 상용로그를 반환해요.
  • sin(double)·cos(double)·tan(double) — 삼각 함수를 반환해요.
  • random() — 0.0 이상 1.0 미만의 양의 부호 double 값을 반환해요.
  • round(x) — 가장 가까운 정수로 반올림한 값을 반환해요.
  • floor(double)·ceil(double) — 내림·올림 값을 반환해요.
  • floorDiv(a, b)·floorMod(a, b) — floor 나눗셈과 나머지를 반환해요.
  • clamp(value, min, max) — 값이 [min, max] 범위에 들어가도록 자르는 메서드도 있어요 (자바 21).

더 알아보기 (Learn more)