Math 클래스
는 수학 연산에 관한 메소드들을 제공하는 클래스입니다. Math 클래스
의 멤버들은 모두 정적 (static)
이기에 객체 생성없이 Math.
를 통해 바로 사용할 수 있습니다.
절대값이나 소수점 관련부터 삼각함수까지 다양한 메소드들이 있는데 주로 사용되는 몇 가지 메소드들만 간단하게 짚어보고 넘어가겠습니다. 역시 전체 메소드는 공식 문서를 참조해주세요.
abs()
는 절대값을 취득하는 메소드입니다.
public class Main {
public static void main(String[] args) {
System.out.println(Math.abs(-1.234));
}
}
ceil()
은 소수점 올림, floor()
는 소수점 버림, round()
는 소수점 반올림을 수행한 결과를 반환하는 메소드입니다.
ceil()
과 floor()
는 double을 인수로 받아 double을 반환하고, round()
는 인수로 float를 받으면 int로 double을 받으면 long을 반환합니다.
public class Main {
public static void main(String[] args) {
double num = 1.5;
System.out.println(Math.ceil(num));
System.out.println(Math.floor(num));
System.out.println(Math.round(num));
}
}
max()
는 인수로 전달된 더 큰 수를 min()
은 더 작은 수를 반환합니다.
public class Main {
public static void main(String[] args) {
System.out.println(Math.max(1, 2));
System.out.println(Math.min(1, 2));
}
}
random()
은 무작위 숫자를 취득하는 메소드입니다. 결과로는 0.0 ~ 1.0
사이의 무작위 수(난수)를 반환합니다.
public class Main {
public static void main(String[] args) {
System.out.println(Math.random());
}
}
위 코드를 실행하면 위 사진처럼 엄청나게 긴 숫자가 나오게됩니다. 이 결과를 후처리를 통해서 원하는 값으로 만든 후 사용하게 됩니다.
예를 들어 1부터 50까지의 숫자 중 랜덤으로 1가지 숫자를 뽑고 싶다면 Math.random()
부분을 다음과 같이 고쳐줍니다.
(int)(Math.random() * 50) + 1
(int)(Math.random() * n) + 1
를 이용해서 1 ~ n
까지의 랜덤한 숫자를 뽑아낼 수 있습니다.