Math — 기본적인 수치 연산을 제공하는 클래스
Math — 기본적인 수치 연산을 제공하는 클래스
Math는 기본적인 수치 연산을 수행하는 메서드들을 포함하는 클래스예요. 지수·로그·제곱근·삼각 함수 같은 것을 제공해요.
본문
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).