금액과 통계같은 수치를 나타내는 작업을 할 때, 보통은 숫자가 소수점 단위로 떨어지는 경우가 있습니다. 이럴 경우 소수점 몇단위 이하를 절삭하거나 올림, 반올림 등이 필요한데요.
Java에서 활용할 수 있는 소수점 컨트롤 클래스에 대해서 살펴보겠습니다.
Math 클래스
Math라 함은 수학을 뜻하는 영어단어 인데요.
Java에서는 Math 클래스를 통해서 여러가지 수학과 관련한 연산 기능을 제공합니다.
또한, static 으로 고현되어 있어 객체를 생상하지 않고도 사용할 수 있어 아주 편리합니다.
이번에 우리가 사용할 기능은 반올림, 올림, 내림인데요.
메소드의 기능은 아래와 같습니다.메소드명 기능 Math.round 숫자를 반올림 Math.ceil 숫자를 올림 Math.floor 숫자를 내림
public static void main(String[] args) {
double number = 987.65;
System.out.println("기본 숫자 : " + number);
System.out.println("round : "+ Math.round(number));
System.out.println("ceil : "+ Math.ceil(number));
System.out.println("floor : "+ Math.floor(number));
}

Math 클래스의 round, ceil, floor를 사용할 결과입니다.
하지만 우리가 원하는 결과는 대부분 소수점 몇자리 만큼의 반올림이나 올림을 자주 쓰는데요.
이는 구현하기 위해서는
원래의 값이 일정 수를 곱하고 round 처리 후에
다시 곱한 일정 수 만큼 나눠주면 됩니다.
말로 하면 어려운데 아래의 표와 예제를 통해 설명해 보겠습니다.
컨트롤 하고 싶은 소수점 | 곱해야 하는 수 |
두번째 소수점 | 10 |
세번째 소수점 | 100 |
네번째 소수점 | 1000 |
public static void main(String[] args) {
double number = 987.655;
number = number * 100;
number = Math.round(number);
System.out.println("두번째 소수 반올림 : "+ number / 100);
}
987.655의 세번째 소수점을 반올림 하고 싶습니다.
이럴 경우에는 소스에 보이는 바와 같이 원래 값에 100을 곱해 줍니다.
그리고 해당 값을 round 처리 하여 반올림 한 뒤에 다시 100을 나눠주면 됩니다.
위의 소스의 결과는 풀이는 아래와 같습니다.
원래의 값이 987.655인데, 여기에 소수점 3번째 자리를 컨트롤 하기 위해
100을 곱해 줍니다.
100을 곱하면 98765.5가 되는데요. 여기서 round 처리를 하게 되면 값이 98766이 됩니다.
여기서 또 다시 100을 나눠주면 987.66이 되는 원래 입니다. 컨트롤 하고 싶은 자리수, 예를 들어 3번째면 자릿수가 3이여서 100을 곱해준다 생각하면 이해하기 쉽겠습니다.
답글 남기기