본문 바로가기

카테고리 없음

자바 Math 클래스 개념 공부

728x90
반응형

* Math 클래스는 java.lang 패키지에 포함되어 있으며 기본적인 산술 연산을 제공한다.

모든 멤버 메소드는 static 타입이므로 클래스 이름으로 바로 사용하면 된다.

 

* Math 클래스 주요 메소드

메소드 설명
static double abs(double a) 실수 a의 절대값 리턴
static double cos(double a) 실수 a의 cosine 값 리턴
static double sin(double a) 실수 a의 sine 값 리턴
static double tan(double a) 실수 a의 tangent 값 리턴
static double exp(double a) e^a 값 리턴
static double ceil(double a) 올림. 실수 a보다 크거나 같은 수 중에서 가장 작은 정수를 실수 타입으로 리턴
static double floor(double a) 내림. 실수 a보다 작거나 같은 수 중에서 가장 큰 정수를 실수 타입으로 리턴
static double max(double a, double b) 두 수 a, b 중에서 큰 수 리턴
static double min(double a, double b) 두 수 a, b 중에서 작은 수 리턴
static double random() 0.0보다 크거나 같고 1.0보다 작은 임의의 실수 리턴
static long round(double a) 반올림. 실수 a를 소수 첫째 자리에서 반올림한 정수를 long 타입으로 반환
static double sqrt(double a) 실수 a의 제곱근 리턴

 

* Math 클래서에서 가장 많이 사용하는 메소드는 난수를 발생하는 random() 메소드 이다.

ex) 1~100 사이의 랜덤 정수

for(int i=0; i<10;x++){
	int n = (int)(Math.random() * 100 + 1); // n은 [1~100] 사이의 랜덤 정수
    Sysout.out.println(n);
}

Math.random()은 0.0보다 크거나 같고 1.0보다 작은 실수 이고 각 숫자에 100을 곱하여 0.0~99.9999.. 사이의 실수를 얻을 수 있다. 여기에 1을 더하면 1.0~100.9999... 사이의 랜덤한 실수이다. 다시 이 값을 (int)로 강제 타입 변환하면 소수점 이하가 떨어져 나가므로 1~100까지 정수 값을 얻을 수 있다.

 

* Math 클래스 메소드 활용

public class MathEx{
	public static void main(String[] args) {
		double a = 3.14;
		System.out.println(Math.PI); // 원주율 상수 출력
		System.out.println(Math.ceil(a)); // ceil(올림)
		System.out.println(Math.floor(a)); // floor(내림)
		System.out.println(Math.sqrt(9)); // 제곱근
		System.out.println(Math.exp(2)); // e의 2승
		System.out.println(Math.round(3.14)); // 반올림
		
		// [1, 45] 사이의 정수형 난수 5개 발생
		System.out.println("이번주 행운의 번호는 ");
		for(int i=0; i<5; i++) {
			System.out.println (((int)Math.random()*45+1)+" "); // 난수 발생
		}
	}
}

실행 결과

3.141592653...

4.0

3.0

3.0

7.38905609893065...

3

이번주 행운의 번호는 15 31 9 2 5

반응형