ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Math메서드, Round(), Rint() 비교하기
    Java/자바의정석 2023. 2. 22. 23:41
    반응형

    앞전에 Math 메서드를 공부하면서 Round,와 Rint에 대해 공부하였는데

    Round는 반올림, Rint는 짝수를 반올림한다고 하였는데 코드를 보며 좀 더 자세하게 이해해보도록 하자.

    public class RoundTest {
        public static void main(String[] args) {
            double sum = 0;
            double sum1 = 0;
            double sum2 = 0;
            for (double i = 1.5; i <= 10.5; i++) {
                double d = Math.round(i);
                double d2 = Math.rint(i);
    
                System.out.printf("%4.1f %4.1f %4.1f%n", i, d, d2);
                sum+=i;
                sum1 += d;
                sum2 += d2;
            }
    
            System.out.println("=====================");
            System.out.printf("%4.1f %4.1f %4.1f%n", sum, sum1, sum2);
    
        }
    }

    ================실행결과================

    1.5  2.0  2.0
     2.5  3.0  2.0
     3.5  4.0  4.0
     4.5  5.0  4.0
     5.5  6.0  6.0
     6.5  7.0  6.0
     7.5  8.0  8.0
     8.5  9.0  8.0
     9.5 10.0 10.0
    10.5 11.0 10.0
    =====================
    60.0 65.0 60.0


    왼쪽부터 차례대로 sum, sum1(round), sum2(rint) 로 계산한 값들이다.

    파랑으로 색칠되어있는 부분을 자세히본다면 짝수일때만 round, rint로 계산한 값들이 차이가 생긴다.

    rint() 가장가까운 짝수로 반올림 하기 때문이다.

     

    이렇게 생각하면 rint()로 계산을 한다면 값이 이상할거라고 생각하지만 결과값은

    rint()가 더 정확하게 나왔다.

     

    sum총합 : 60.0 / round총합 : 65.0 / rint총합 : 60.0

     

    이상으로 rint메서드의 기능을 다시한번 살펴보았다.

    반응형

    댓글

Designed by Tistory.