Java Math 클래스 완벽 가이드: abs, round, ceil, floor, min, max 등 실전 예제
Java의 Math 클래스는 물리 시뮬레이션부터 지리 계산까지 복잡한 계산을 다루는 개발자에게 필수적입니다. 이 가이드는 핵심 메서드인 abs(), round(), ceil(), floor(), min(), max()를 다루고 각각을 실전 코드 예제로 시연합니다.
java.lang.Math에서 사용 가능한 주요 상수:
- Math.E – 2.718281828459045 (자연로그 밑)
- Math.PI – 3.141592653589793 (원주율)
| 메서드 | 설명 | 인수 타입 |
| abs | 인수의 절댓값 반환 | double, float, int, long |
| round | 가장 가까운 int 또는 long으로 반올림 | double 또는 float |
| ceil | 값보다 크거나 같은 가장 작은 정수 | double |
| floor | 값보다 작거나 같은 가장 큰 정수 | double |
| min | 두 인수 중 작은 값 | double, float, int, long |
| max | 두 인수 중 큰 값 | double, float, int, long |
아래는 이 메서드들을 보여주는 간결한 코드 조각입니다(명시적 import 불필요; java.lang.Math 자동 사용 가능):
int i1 = 27; int i2 = -45; double d1 = 84.6; double d2 = 0.45;
// abs()
System.out.println("abs(i1) = " + Math.abs(i1));
System.out.println("abs(i2) = " + Math.abs(i2));
System.out.println("abs(d1) = " + Math.abs(d1));
System.out.println("abs(d2) = " + Math.abs(d2));
// round()
System.out.println("round(d1) = " + Math.round(d1));
System.out.println("round(d2) = " + Math.round(d2));
// ceil() & floor()
System.out.println("ceil(d1) = " + Math.ceil(d1));
System.out.println("floor(d1) = " + Math.floor(d1));
System.out.println("ceil(d2) = " + Math.ceil(d2));
System.out.println("floor(d2) = " + Math.floor(d2));
// min() & max()
System.out.println("min(i1, i2) = " + Math.min(i1, i2));
System.out.println("max(i1, i2) = " + Math.max(i1, i2));
System.out.println("min(d1, d2) = " + Math.min(d1, d2));
System.out.println("max(d1, d2) = " + Math.max(d1, d2));
예제 출력:
abs(i1) = 27
abs(i2) = 45
abs(d1) = 84.6
abs(d2) = 0.45
round(d1) = 85
round(d2) = 0
ceil(d1) = 85.0
floor(d1) = 84.0
ceil(d2) = 1.0
floor(d2) = 0.0
min(i1, i2) = -45
max(i1, i2) = 27
min(d1, d2) = 0.45
max(d1, d2) = 84.6
기본 산술 외에도 java.lang.Math는 강력한 과학 함수를 제공합니다:
| 메서드 | 설명 | 인수 |
| exp | e의 입력값 제곱 | double |
| log | 자연 로그 | double |
| pow | 밑의 지수 승 | double, double |
| sqrt | 제곱근 | double |
double d1 = 84.6; double d2 = 0.45;
System.out.println("exp(d2) = " + Math.exp(d2));
System.out.println("log(d2) = " + Math.log(d2));
System.out.println("pow(5, 3) = " + Math.pow(5.0, 3.0));
System.out.println("sqrt(16) = " + Math.sqrt(16));
출력:
exp(d2) = 1.568312185490169
log(d2) = -0.7985076962177716
pow(5, 3) = 125.0
sqrt(16) = 4.0
삼각 함수 도구상자:
| 메서드 | 설명 | 인수 |
| sin | 사인 (입력은 라디안) | double |
| cos | 코사인 (라디안) | double |
| tan | 탄젠트 (라디안) | double |
| atan2 | y/x의 아크탄젠트 (라디안 반환) | double, double |
| toDegrees | 라디안을 도(degree)로 | double |
| toRadians | 도를 라디안으로 | double |
double angleDeg = 30.0;
double angleRad = Math.toRadians(angleDeg);
System.out.println("sin(30°) = " + Math.sin(angleRad));
System.out.println("cos(30°) = " + Math.cos(angleRad));
System.out.println("tan(30°) = " + Math.tan(angleRad));
System.out.println("atan2(4, 2) = " + Math.atan2(4, 2));
출력:
sin(30°) = 0.49999999999999994
cos(30°) = 0.8660254037844387
tan(30°) = 0.5773502691896257
atan2(4, 2) = 1.1071487177940904
이 구성 요소들로 견고한 공학 계산기, 엔지니어링 계산, 지리 좌표 처리를 자신 있게 만들 수 있습니다.