Math 클래스란?
- Math 클래스는 수학에서 자주 사용하는 상수들과 함수들을 미리 구현해 놓은 클래스이다.
- java.lang 패키지에 포함된 클래스
- Math 클래스의 모든 메서드는 static method 이므로, 객체를 생성하지 않고 바로 사용할 수 있다.
random() - 랜덤 함수
- 0.0 이상 1.0 미만의 범위에서 임의의 double형 값을 하나 생성해서 반환하는 함수
System.out.println(Math.random()); //0.0 ~ 1.0
//0 ~ 99까지의 난수 생성
System.out.println((int)(Math.random() * 100)); // 0 ~ 99
//java.util 패키지에 포함된 Random 클래스의 nextInt() 메서드를 사용해서 난수를 생성할 수도 있다.
Random ran = new Random();
System.out.println(ran.nextInt(100)); // 0 ~ 99
//난수 생성 범위를 조절해서 특정 범위에 속하는 난수를 생성
System.out.println((int)(Math.random() * 11)); // 0 ~ 10
System.out.println(((int)(Math.random() * 6) + 1)); // 1 ~ 11
abs() - 절댓값 함수
- 주어진 값의 절댓값 반환
System.out.println(Math.abs(10)); // 10
System.out.println(Math.abs(-10)); // 10
System.out.println(Math.abs(-3.14)); // 3.14
floor(), ceil(), round() - 내림, 올림, 반올림 함수
- floor() 메서드는 전달받은 값과 같거나 작은 수 중에서 가장 큰 정수 반환. 즉, 내림
- ceil() 메서드는 전달받은 값과 같거나 큰 수 중에서 가장 작은 정수 반환. 즉, 올림
- round() 메서드는 전달받은 실수를 소수점 첫째 자리에서 반올림한 정수 반환. 즉, 반올림
//floor() 메서드 - 내림
System.out.println(Math.floor(10.0)); // 10.0
System.out.println(Math.floor(10.2)); // 10.0
System.out.println(Math.floor(10.8)); // 10.0
//ceil() 메서드 - 올림
System.out.println(Math.ceil(10.0)); // 10.0
System.out.println(Math.ceil(10.2)); // 11.0
System.out.println(Math.ceil(10.8)); // 11.0
//round() 메서드 - 반올림
System.out.println(Math.round(10.0)); // 10
System.out.println(Math.round(10.2)); // 10
System.out.println(Math.round(10.8)); // 11
max() 와 min() - 최댓값, 최소값 함수
- max() 메서드는 전달된 두 값 중 큰 값을 반환
- min() 메서드는 전달된 두 값 중 작은 값을 반환
System.out.println(Math.max(3.14, 3.14159)); // 3.14159
System.out.println(Math.min(3.14, 3.14159)); // 3.14
System.out.println(Math.max(-10, -11)); // -10
System.out.println(Math.min(-10, -11)); // -11
pow(), sqrt() - 제곱, 제곱근 함수
- pow() 메서드는 두 개의 double 형 값을 가지고 제곱 연산 수행
- 반대로 sqrt() 메서드는 전달된 double 형 값의 제곱근 값을 반환
System.out.println((int)Math.pow(5, 2)); // 25
System.out.println((int)Math.sqrt(25)); // 5
[참고]
https://www.tcpschool.com/java/java_api_math
'Java' 카테고리의 다른 글
[Java] 오버로딩과 오버라이딩(Overloading & Overriding) (0) | 2024.09.10 |
---|---|
[Java] 자바 Queue에 x, y 값 두 개 삽입(Pair 클래스, Point 클래스) (0) | 2024.08.23 |
[Java] 빠른 입출력 BufferedReader & BufferedWriter (0) | 2024.06.19 |
[Java] JDK 버전 여러 개 전환하며 사용하기 (0) | 2024.05.13 |