
1. Math 클래스 소개
자바의 Math 클래스는 수학적인 연산을 수행하는 데 유용한 다양한 메서드를 제공합니다. 이 클래스는 모든 메서드가 정적(static)이므로, Math 클래스의 객체를 생성할 필요 없이 바로 사용할 수 있습니다.
또한, Math 클래스는 java.lang 패키지에 위치하고 있기 때문에 별도의 import 없이 사용 가능합니다.
2. Math 클래스의 상수
- static double E : 자연 로그의 밑인 e에 가장 가까운 값
- static double PI : 원주율 PI
3. Math 클래스에서 자주 쓰이는 메소드
| 구분 | 메소드 |
| 절대값, 부호 | abs, signum |
| 제곱 관련 | pow, scalb, sqrt, cbrt, hypot |
| 최소, 최대 | min, max |
| 소수점 | ceil, floor, round, rint |
| 삼각함수 | toRadians, toDegrees, sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh |
| 이외 | 로그, 지수, 난수, 소수 관련이 있음 |
▶ 절대값, 부호 반환
자바의 Math 클래스에서 제공하는 abs와 signum 메소드에 대해 알아보겠습니다.
1. abs(int a), abs(double a) , abs(float a) , abs(long a)
이 메소드는 주어진 값의 절댓값을 반환합니다. 인자로 정수나 부동 소수점 수를 받아들이며, 반환되는 값은 해당 값의 절댓값입니다.
사용법:
int absoluteValueInt = Math.abs(-10); // 결과: 10
double absoluteValueDouble = Math.abs(-3.14); // 결과: 3.14
2. signum(double a)
이 메소드는 주어진 값의 부호를 반환합니다. 반환값은 다음과 같습니다:
- 0보다 큰 경우: 1
- 0인 경우: 0
- 0보다 작은 경우: -1
사용법:
double value = -3.5;
double sign = Math.signum(value); // 결과: -1.0
abs 메소드는 값을 절댓값으로 변환할 때 사용되며, signum 메소드는 값의 부호를 확인할 때 유용합니다. 이러한 메소드들은 수학적 연산이나 값의 처리를 위해 자주 사용됩니다.
▶ 제곱 관련
자바의 Math 클래스에서 제공하는 pow, scalb, sqrt, cbrt, 그리고 hypot 메소드에 대해 자세히 알아보겠습니다.
1. pow(double a, double b)
이 메소드는 주어진 밑(base)의 거듭제곱을 계산합니다. a를 b번 거듭제곱한 값을 반환합니다.
사용법:
// 1. Math.pow(double a, double b)
double resultPow = Math.pow(2, 3); // 결과: 8.0 (2^3)
2. scalb(double d, int scaleFactor)
주어진 값을 지정된 지수로 증가시킵니다. 즉, 주어진 값 d에 2^scaleFactor를 곱한 값을 반환합니다.
사용법:
// 2. Math.scalb(double d, int scaleFactor)
double resultScalb = Math.scalb(3.5, 2); // 결과: 14.0 (3.5 * 2^2)
3. sqrt(double a)
이 메소드는 주어진 값의 제곱근을 반환합니다.
사용법:
// 3. Math.sqrt(double a)
double resultSqrt = Math.sqrt(25); // 결과: 5.0 (제곱근)
4. cbrt(double a)
주어진 값의 세제곱근을 반환합니다.
사용법:
// 4. Math.cbrt(double a)
double resultCbrt = Math.cbrt(27); // 결과: 3.0 (세제곱근)
5. hypot(double x, double y)
두 개의 인자로 전달된 값을 이용하여 피타고라스의 정리를 계산합니다. 즉, 두 직각삼각형의 직각을 이루는 두 변의 길이를 입력받아 빗변의 길이를 반환합니다.
사용법:
// 5. Math.hypot(double x, double y)
double resultHypot = Math.hypot(3, 4); // 결과: 5.0 (빗변의 길이)
▶ 최소, 최대
1. min(a, b)와 max(a, b)
이 두 메소드는 주어진 두 개의 수 중에서 각각 작은 값을 찾아주는 min과 큰 값을 찾아주는 max 메소드입니다.
사용법:
int minResult = Math.min(10, 20); // 결과: 10
int maxResult = Math.max(10, 20); // 결과: 20
▶ 소수점 관련
자바의 Math 클래스에서 제공하는 ceil, floor, round, rint 메소드에 대해 설명하겠습니다.
1. ceil(double a) : 올림
ceil 메소드는 주어진 값보다 크거나 같은 가장 작은 정수를 반환합니다. 즉, 주어진 값의 소수점 이하를 올림하여 가장 가까운 정수를 반환합니다.
사용법:
double result = Math.ceil(3.14); // 결과: 4.0
2. floor(double a) : 내림
floor 메소드는 주어진 값보다 작거나 같은 가장 큰 정수를 반환합니다. 즉, 주어진 값의 소수점 이하를 내림하여 가장 가까운 정수를 반환합니다.
사용법:
double result = Math.floor(3.14); // 결과: 3.0
3. round(float a)와 round(double a) : 반올림하여 정수 반환
round 메소드는 주어진 값에 가장 가까운 정수를 반환합니다. 소수점 이하가 0.5 이상이면 올림하고, 0.5 미만이면 내림합니다.
사용법:
long result1 = Math.round(3.14f); // 결과: 3
long result2 = Math.round(3.76); // 결과: 4
4. rint(double a) : 반올림해서 double 반환
rint 메소드는 주어진 값에 가장 가까운 정수를 double 형태로 반환합니다. 소수점 이하가 0.5 이상이면 올림하고, 0.5 미만이면 내림합니다.
사용법:
double result = Math.rint(3.14); // 결과: 3.0
이렇게 ceil, floor, round, rint 메소드를 사용하면 주어진 값의 정수 부분을 다양한 방식으로 처리할 수 있습니다.
▶ 삼각 함수 관련
자바의 Math 클래스에서 제공하는 삼각 함수와 관련된 메소드들에 대해 알아보겠습니다.
삼각 함수 관련 메소드:
1. toRadians(double angdeg)와 toDegrees(double angrad)
- toRadians: 주어진 각도를 라디안 단위로 변환합니다.
- toDegrees: 주어진 라디안 값을 각도로 변환합니다.
사용법:
double radians = Math.toRadians(90); // 결과: π/2 (1.5707963267948966)
double degrees = Math.toDegrees(Math.PI / 2); // 결과: 90.0
2. 삼각 함수:
- sin: 주어진 각도의 사인 값을 반환합니다.
- cos: 주어진 각도의 코사인 값을 반환합니다.
- tan: 주어진 각도의 탄젠트 값을 반환합니다.
- asin: 사인 값으로 역삼각 함수를 취한 값을 반환합니다.
- acos: 코사인 값으로 역삼각 함수를 취한 값을 반환합니다.
- atan: 탄젠트 값으로 역삼각 함수를 취한 값을 반환합니다.
- atan2: 두 인자의 아크탄젠트 값을 반환합니다. (y와 x 좌표를 기반으로 합니다.)
사용법:
double sinValue = Math.sin(Math.PI / 6); // 결과: 0.5
double cosValue = Math.cos(Math.PI / 3); // 결과: 0.5
double tanValue = Math.tan(Math.PI / 4); // 결과: 1.0
double asinValue = Math.asin(0.5); // 결과: π/6 (0.5235987755982988)
double acosValue = Math.acos(0.5); // 결과: π/3 (1.0471975511965976)
double atanValue = Math.atan(1.0); // 결과: π/4 (0.7853981633974483)
double atan2Value = Math.atan2(1.0, 1.0); // 결과: π/4 (0.7853981633974483)
3. 쌍곡 함수:
- sinh: 쌍곡 사인 값을 반환합니다.
- cosh: 쌍곡 코사인 값을 반환합니다.
- tanh: 쌍곡 탄젠트 값을 반환합니다.
사용법:
double sinhValue = Math.sinh(0.0); // 결과: 0.0
double coshValue = Math.cosh(0.0); // 결과: 1.0
double tanhValue = Math.tanh(0.0); // 결과: 0.0
이렇게 Math 클래스의 메소드들을 사용하여 각종 삼각 함수와 쌍곡 함수를 계산할 수 있습니다.
▼ 이외의 로그, 지수 등의 다른 메소드는 공식 문서를 참고해봅시다.
'Java' 카테고리의 다른 글
| [Java] 자바 HashMap 사용하기 (0) | 2024.05.06 |
|---|---|
| [Java] 자바 Arrays 클래스: 배열 다루기 (1) | 2024.05.06 |
| [Java] 자바에서 키 입력 System.in과 Scanner (0) | 2024.05.03 |
| [Java] 자바 기본 문법 - 데이터 타입 (0) | 2024.05.03 |
| [Java] 자바의 생성자 목적과 특징, 기본 생성자, this 레퍼런스 (0) | 2024.04.08 |