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 연산시 부동 소수점으로 인해 자릿수 다르게 표현된 것을 볼 수 있다.