자바는 수학계산에 유용하게 쓰일수 있도록 Math클래스를 제공합니다. 이 안에는 유용한 메소드들이 있습니다.

Math클래스의 모든 메소드는 정적메소드 입니다. 정적이란 static이 붙어있음을 말합니다.

즉, 굳이 객체를 만들어서 사용할 필요가 없다는 겁니다.

Math클래스의 메소드가 어떤게 있는지 궁금하시다면 Math.을 쳐보시면 아주 많은 메소드들을 보여줄겁니다.

이 중 몇가지만 골라서 사용해볼까 합니다.


1. 임의의 수를 얻고 싶을때 => random()

아마 자주 쓰이는 메소드중 하나가 아닐가 생각합니다.

random()은 0.0 부터 1.0 사이에 있는 하나의 double형의 값을 리턴해 줍니다.

단, 0.0,은 범위에 포함되나 1.0은 포함하지 않습니다.

0.0 <= Math.random() < 1.0 인 셈이죠.

이 메소드를 사용하면 로또번호를 생성할 수 있을거 같은데요!? ㅎㅎ 

일단 사용을 한번 해봅시다.

1
2
3
4
5
6
7
8
9
10
11
12
13
package com.sogom.math;
 
public class MathDemo {
    public static void main(String[] args) {
        
        double val;
    
        for(int i = 1 ; i < 6 ; i++){
            val = Math.random();
            System.out.println(val);
        }
    }
}
cs

그러면 이것을 이용해서 로또번호를 생성하는 프로그램을 만들봅시다!!


2. 절상과 절삭을 하고 싶다면? => ceil() 과 floor()

절상이란 올림이구요, 절삭은 버림입니다.

두 메소드 모두 double형의 값을 리턴해줍니다.

올림과 버림을 할 숫자라면 소수이겠죠?

따라서 파라미터로 double타입의 소수를 넣어줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package com.sogom.math;
 
public class MathDemo {
    public static void main(String[] args) {
    
        double val1 = 12.56;
        double val2 = -20.5;
        double val3 = 6.9422001;
        
        System.out.println("12.56의 절상결과 : " + Math.ceil(val1));
        System.out.println("-20.5의 절상결과 : " + Math.ceil(val2));
        System.out.println("6.9422001의 절상결과 : " + Math.ceil(val3) + "\n");
        
        System.out.println("12.56의 절삭결과 : " + Math.floor(val1));
        System.out.println("-20.5의 절삭결과 : " + Math.floor(val2));
        System.out.println("6.9422001의 절삭결과 : " + Math.floor(val3));
    }
    
}
cs

추가로 반올림을 하고싶으면 round()를 사용합니다.


이 외에도 많은 메소드들이 있습니다.

외울 필요가 없습니다.

필요할때 API보고 사용하면 되니까요~