Math 클래스

박영준·2023년 5월 9일
0

Java

목록 보기
71/112

1. 정의

  • 수학과 관련된 메서드를 가지고 있는 클래스

2. 메서드

Math.round()

실수를 소수점 첫 째자리에서 반올림한 정수를 반환

Math.ceil()

올림값을 double 형으로 반환

Math.floor()

내림값을 double 형으로 반환

Math.abs()

int, double 기본형 모두 사용 가능하며, 절대값을 얻음

Math.sqrt()

특정값의 제곱근(루트)을 구하기

Math.min(인자, 인자)

두 인자 中 작은 값을 리턴

Math.max(인자, 인자)

두 인자 中 큰 값을 리턴

Math.pow(대상숫자, 지수)

만약 Math.pow(5, 2) 일 경우, 5의 제곱 값인 25가 나온다

Math.log()

① Math.log() : 자연로그의 값을 반환

② Math.log10() : 상용로그의 값을 반환

③ Math.Log2() : 밑이 2인 로그의 값을 반환

Math.random()

  • 임의의 정수를 만들 수 있다.

  • 0.0 <= Math.random() < 1.0

    • 0.0 과 1.0 사이의 임의의 double 값을 반환

3. 사용법

예시 1 : round()

소수점 4째 자리에서 반올림한 값을 구하라.

class Operator5_1 {
    public static void main(String[] args) {
        long result = Math.round(3.645678);
        System.out.println("result = " + result);

        // 1번 : 3.142 구하는 방법
        	// pi * 1000 = 3141.592 → Math.round(3141.592) = 3142 → 3142 / 1000.0 = 3.142
        double pi = 3.141592;
        double shortPi = Math.round(pi * 1000) / 1000.0;		
        
        System.out.println(shortPi); // 3.142

        // 2번 : 3.141 구하는 방법
        	// pi2 * 1000 = 3141.592 → (int)3141.592
        double pi2 = 3.141592;
       
        System.out.println("(int)(pi2 * 1000) = " + (int) (pi2 * 1000));
        System.out.println("(int)(pi2 * 1000) / 1000.0  = " + (int) (pi2 * 1000) / 1000.0);
    }
}

예시 2 : 반올림, 올림, 내림, 절대값

class Operator5_2 {
    public static void main(String[] args) {
    
        double num = 3.14;
        
        System.out.println("반올림 : " + Math.round(num));
        System.out.println("올림 : " + Math.ceil(num));
        System.out.println("내림 : " + Math.floor(num));
        System.out.println("절대값 : " + Math.abs(num*-1));
    }
}

/* 출력 결과
반올림 : 3
올림 : 4.0
내림 : 3.0
절대값 : 3.14 
*/

예시 3 : Math.sqrt()

public class Sqrt {
    public static void main(String[] args)  {
        double result = Math.sqrt(25); //25의 제곱근
        System.out.println("25의 제곱근 : "+ result);
    }
}

/* 출력 결과
25의 제곱근 : 5
*/
  • 입력값과 출력값은 모두 double형

예시 4 : Math.log()

Math.log(Math.E)				// 1
Math.log10(100)					// 2
Math.log2(16)					// 4
Math.log(64) / Math.log(4)		// 3
Math.log(81) / Math.log(3)		// 4.000000000000001

예시 5 : Math.random()

1 부터 5 사이의 random 한 정수 값 구하기

0.0 * 5 <= Math.random() * 5 < 1.0 * 5

(int)0.0 <= (int)(Math.random() * 5) < (int)5.0

0 + 1 <= (int)(Math.random() * 5) + 1 < 5 + 1

1 <= (int)(Math.random() * 5) + 1 < 6

1 ~ 10 사이의 난수를 20개 출력하시오.

class Control4_1 {
    public static void main(String[] args) {

        for (int i = 0; i < 20; i++) {

			// 0.0 * 10 <= x * 10 < 1.0 * 10
			System.out.println(Math.random() * 10);		// X
            
            // 0 <= (int)(x * 10) < 10
			System.out.println((int)(Math.random() * 10));		// X 
            
            // 1 <= (int)(x * 10) + 1 < 11
			System.out.println((int)(Math.random() * 10) + 1);		// O 

        }
    }
}
  • 난수 : 무작위로 만들어진 수열

  • 괄호 { } 안의 내용을 20번 반복

-5 ~ 5 사이의 난수를 20개 출력하시오.

class Control4_1 {
    public static void main(String[] args) {

		for (int i = 0; i < 20; i++) {
        
        	// 0 ~ 10
        	System.out.println((int)(Math.random() * 11));		// X
        
        	// -5 ~ 5
            System.out.println((int)(Math.random() * 11) - 5);		// O
        }
    }
}

참고: [Java] 자바 제곱근(루트) 구하기 Math.sqrt()
참고: JavaScript / Object / Math.log(), Math.log10(), Math.Log2()

profile
개발자로 거듭나기!

0개의 댓글