Java Math Methods
자바에서의 수학 메서드 (Java Math Methods)
자바의 Math
클래스는 수학 연산을 위한 다양한 정적(static) 메서드들을 제공합니다. 이 클래스는 기본적인 산술
연산에서부터 삼각 함수, 지수 함수, 로그 함수와 같은 고급 수학 연산까지 다양한 기능을 포함하고 있습니다. Math
클래스는 java.lang 패키지에
포함되어 있어, 별도의 import 없이 바로 사용할 수 있습니다.
주요 Math
클래스 메서드
1. 절댓값 구하기: abs()
abs()
메서드는 주어진 숫자의 **절댓값(Absolute Value)**을 반환합니다. 이 메서드는 정수, 실수 등의 데이터 타입에 대해 사용할 수
있습니다.
public class Main {
public static void main(String[] args) {
int intVal = -10;
double doubleVal = -3.14;
System.out.println("정수의 절댓값: " + Math.abs(intVal)); // 출력: 10
System.out.println("실수의 절댓값: " + Math.abs(doubleVal)); // 출력: 3.14
}
}
2. 거듭제곱: pow()
pow()
메서드는 주어진 숫자의 **거듭제곱(Power)**을 계산합니다. 두 개의 매개변수를 받아, 첫 번째 값을 두 번째 값만큼 제곱한 결과를
반환합니다.
public class Main {
public static void main(String[] args) {
double base = 2.0;
double exponent = 3.0;
double result = Math.pow(base, exponent);
System.out.println("2의 3제곱: " + result); // 출력: 8.0
}
}
3. 제곱근 구하기: sqrt()
sqrt()
메서드는 주어진 숫자의 **제곱근(Square Root)**을 반환합니다.
public class Main {
public static void main(String[] args) {
double number = 16.0;
double squareRoot = Math.sqrt(number);
System.out.println("16의 제곱근: " + squareRoot); // 출력: 4.0
}
}
4. 올림과 내림: ceil()
, floor()
ceil()
: 올림 연산. 소수점 이하가 있으면 무조건 큰 쪽으로 올림합니다.floor()
: 내림 연산. 소수점 이하가 있으면 작은 쪽으로 내림합니다.
public class Main {
public static void main(String[] args) {
double num = 7.34;
System.out.println("올림: " + Math.ceil(num)); // 출력: 8.0
System.out.println("내림: " + Math.floor(num)); // 출력: 7.0
}
}
5. 반올림: round()
round()
메서드는 주어진 값을 가장 가까운 정수로 반올림합니다. 소수점 첫 번째 자리에서 0.5 이상이면 올림,
0.5 미만이면 내림을 수행합니다.
public class Main {
public static void main(String[] args) {
double num1 = 7.5;
double num2 = 7.4;
System.out.println("7.5의 반올림: " + Math.round(num1)); // 출력: 8
System.out.println("7.4의 반올림: " + Math.round(num2)); // 출력: 7
}
}
6. 최대값과 최소값: max()
, min()
max()
: 두 숫자 중 더 큰 값을 반환합니다.min()
: 두 숫자 중 더 작은 값을 반환합니다.
public class Main {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("최대값: " + Math.max(a, b)); // 출력: 20
System.out.println("최소값: " + Math.min(a, b)); // 출력: 10
}
}
7. 난수 생성: random()
random()
메서드는 0.0 이상 1.0 미만의 **난수(double)**를 반환합니다. 특정 범위의 난수를 생성하려면, 난수에 범위 값을
곱하고 형변환해야 합니다.
public class Main {
public static void main(String[] args) {
// 0.0 이상 1.0 미만의 난수 생성
double randomValue = Math.random();
System.out.println("랜덤 값: " + randomValue);
// 1부터 100까지의 정수 난수 생성
int randomInt = (int) (Math.random() * 100) + 1;
System.out.println("랜덤 정수 (1~100): " + randomInt);
}
}
8. 로그 함수: log()
, log10()
log()
: 자연 로그(밑이e
) 값을 반환합니다.log10()
: 밑이 10인 로그 값을 반환합니다.
public class Main {
public static void main(String[] args) {
double num = 100;
System.out.println("자연 로그 (ln 100): " + Math.log(num)); // 출력: 약 4.605
System.out.println("밑이 10인 로그 (log10 100): " + Math.log10(num)); // 출력: 2.0
}
}
9. 삼각 함수: sin()
, cos()
, tan()
Math
클래스는 삼각함수를 제공하며, 라디안 값을 인자로 받습니다.
public class Main {
public static void main(String[] args) {
double angle = Math.PI / 2; // 90도(라디안 값)
System.out.println("sin(90도): " + Math.sin(angle)); // 출력: 1.0
System.out.println("cos(90도): " + Math.cos(angle)); // 출력: 거의 0.0
System.out.println("tan(90도): " + Math.tan(angle)); // 출력: 거의 무한대
}
}
10. 절대값, 제곱근, 거듭제곱 예시
public class Main {
public static void main(String[] args) {
// 절대값
int absVal = Math.abs(-100);
System.out.println("절대값: " + absVal); // 출력: 100
// 제곱근
double sqrtVal = Math.sqrt(64);
System.out.println("제곱근: " + sqrtVal); // 출력: 8.0
// 거듭제곱
double powVal = Math.pow(2, 3); // 2의 3제곱
System.out.println("거듭제곱: " + powVal); // 출력: 8.0
}
}
11. hypot()
: 직각삼각형의 빗변 길이 계산
hypot()
메서드는 주어진 두 변의 길이를 사용하여 직각삼각형의 빗변 길이를 계산합니다. 이는 피타고라스 정리 \( c = \sqrt{a^2 + b^2}
\) 를 기반으로 합니다.
public class Main {
public static void main(String[] args) {
double sideA = 3.0;
double sideB = 4.0;
// 직각삼각형의 빗변 계산
double hypotenuse = Math.hypot(sideA, sideB);
System.out.println("빗변의 길이: " + hypotenuse); // 출력: 5.0
}
}
12. 각도 변환: toRadians()
, toDegrees()
toRadians()
: 각도를 라디안으로 변환합니다.toDegrees()
: 라디안을 각도로 변환합니다.
public class Main {
public static void main(String[] args) {
double degrees = 180.0;
double radians = Math.toRadians(degrees); // 각도를 라디안으로 변환
System.out.println("180도의 라디안 값: " + radians); // 출력: 3.141592653589793 (PI)
double radianValue = Math.PI;
double degreeValue = Math.toDegrees(radianValue); // 라디안을 각도로 변환
System.out.println("PI 라디안의 각도 값: " + degreeValue); // 출력: 180.0
}
}
요약
Math.abs()
: 절댓값을 반환합니다
.
Math.pow()
: 거듭제곱을 계산합니다.Math.sqrt()
: 제곱근을 구합니다.Math.ceil()
,Math.floor()
: 올림/내림 연산을 수행합니다.Math.round()
: 반올림을 수행합니다.Math.max()
,Math.min()
: 두 값 중 큰 값/작은 값을 반환합니다.Math.random()
: 0.0 이상 1.0 미만의 난수를 생성합니다.Math.log()
,Math.log10()
: 로그 값을 계산합니다.- 삼각 함수:
Math.sin()
,Math.cos()
,Math.tan()
등을 통해 삼각함수 계산이 가능합니다.
자바의 Math
클래스는 수학적인 연산을 쉽게 처리할 수 있도록 많은 메서드를 제공합니다. 이러한 메서드를 적절히 사용하면 복잡한 수학적 계산을 간편하게 수행할 수 있습니다.