Java - Math 클래스

수학용도로 사용하는 Math 클래스가 있다.
많은 API 제공하므로 참고하도록 한다.


abs(int x) - 절대 값

System.out.println("abs(-999): " + Math.abs(-999));

abs(-999): 999

절댓값으로 표시해준다.


min(int a, int b) - 최소 값 찾기

System.out.println("min(100, 200): " + Math.min(100, 200));

min(100, 200): 100

두 값 중 최소 값을 찾아준다.


max(int a, int b) - 최댓 값 찾기

System.out.println("max(100, 200): " + Math.max(100, 200));

max(100, 200): 200

두 값 중 최댓 값을 찾아준다.


ceil(double a) - 올림

System.out.println("ceil(3.3): " + Math.ceil(3.3));

ceil(3.3): 4.0

주어 진 숫자를 올림 한다.


floor(double a) - 내림

System.out.println("floor(3.3): " + Math.floor(3.3));

floor(3.3): 3.0

주어진 숫자를 내림 한다.


round(double a) - 반올림

System.out.println("round(3.3): " + Math.round(3.3));

floor(3.3): 3.0

주어진 숫자를 반올림한다.


sqrt(double a) - 제곱근

System.out.println("sqrt(9): " + Math.sqrt(9));

sqrt(9): 3.0

주어진 숫자를 제곱근한다. 루트 9는 3이다.


random() - 랜덤 숫자

System.out.println("random(): " + Math.random());

random(): 0.7508938874236247

랜덤의 숫자가 출력한다. 출력 타입은 double의 0.0 ~ 1.0 사이의 값을 출력한다.


참고. BigDecimal - 정밀한 숫자와 반올림

반올림에서 발생하는 소숫점 문제를 방지하기 위해 기본 반올림 정책으로 BigDecimal 객체를 사용한다. 은행의 숫자 혼동을 방지로 정책을 세워 사용하고 있다.

double a = 2.2;
double b = 3.4;
System.out.println("Not BigDecimal" + (a - b));

BigDecimal b1 = new BigDecimal("2.2");
BigDecimal b2 = new BigDecimal("3.4");
System.out.println("This BigDecimal " + b1.subtract(b2));

-1.1999999999999997
-1.2

변수 a 와 b 연산시 부동 소수점으로 인해 자릿수 다르게 표현된 것을 볼 수 있다.