ABOUT ME

Today
Yesterday
Total
  • 자바 Math의 주요 메서드
    Java/자바의정석 2023. 2. 22. 23:40
    반응형

    Math의 주요 기능들

    메서드 기능
    abs 절대값
    max 최대값
    min 최소값
    ceil 올림
    floor 버림
    round 반올림
    rint 반올림(짝수)

    이러한 기능들이 있다. 아래의 코드를 보면서 하나하나 짚어보자.

    이코드는 자바의정석 Ex09_13의 예제이다.

    package JavaChap09;
    
    import static java.lang.Math.*;
    import static java.lang.System.*;
    
    class Ex9_13 {
        public static void main(String args[]) {
            double val = 90.7552;
            out.println("round("+ val +")="+round(val));// 반올림
    
            val *= 100;
            out.println("round("+ val +")="+round(val));// 반올림
    
            out.println("round("+ val +")/100  =" + round(val)/100);   // 반올림
            //소수점 이하의 값을 얻고싶다면 실수로 나누어야한다.
            out.println("round("+ val +")/100.0=" + round(val)/100.0); // 반올림
            out.println();
            out.println(abs(-10));
            out.println(abs(-10.1));
            out.println(max(9.5,9050001));
            out.println(min(9.5,9050001));
            out.printf("ceil(%3.1f)=%3.1f%n",  1.1, ceil(1.1));    // 올림
            out.printf("floor(%3.1f)=%3.1f%n", 1.5, floor(1.5));   // 버림
            out.printf("round(%3.1f)=%d%n",    1.1, round(1.1));   // 반올림
            out.printf("round(%3.1f)=%d%n",    1.5, round(1.5));   // 반올림
    
            //짝수 반올림
            out.printf("rint(%3.1f)=%f%n",     1.5, rint(1.5));    // 반올림
    
            out.printf("round(%3.1f)=%d%n",   -1.5, round(-1.5));  // 반올림
            out.printf("rint(%3.1f)=%f%n",    -1.5, rint(-1.5));   // 반올림
            out.printf("ceil(%3.1f)=%f%n",    -1.5, ceil(-1.5));   // 올림
            out.printf("floor(%3.1f)=%f%n",   -1.5, floor(-1.5));  // 버림
        }
    }

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

    round(90.7552)=91
    round(9075.52)=9076
    round(9075.52)/100  =90
    round(9075.52)/100.0=90.76
    10
    10.1
    9050001.0
    9.5
    ceil(1.1)=2.0
    floor(1.5)=1.0
    round(1.1)=1
    round(1.5)=2
    rint(1.5)=2.000000
    round(-1.5)=-1
    rint(-1.5)=-2.000000
    ceil(-1.5)=-1.000000
    floor(-1.5)=-2.000000

    Process finished with exit code 0


    round()

    double val = 90.7552;
    out.println("round("+ val +")="+round(val));// 반올림

    val값을 전달받아 해당값을 반올림한다. 

    결과 : round(90.7552)=91

     

    val *= 100;
    out.println("round("+ val +")="+round(val));// 반올림
    
    out.println("round("+ val +")/100  =" + round(val)/100);   // 반올림
    //소수점 이하의 값을 얻고싶다면 실수로 나누어야한다.
    out.println("round("+ val +")/100.0=" + round(val)/100.0); // 반올림

    곱하기 나누기를 한 뒤 적용하는 예제이다.

    round(9075.52)=9076
    round(9075.52)/100  =90
    round(9075.52)/100.0=90.76

    참고로 나누기를 할때 소수점까지 노출시키기위해서는 실수로 나누어야한다.

     abs()

    out.printf("abs", abs(-10)); 
    out.printf("abs", abs(-10.1));

    abs는 전달받은 값의 절대값을 보여준다 

    결과는 10, 10.1을 반환한다.

     

    max(), min()

    out.println(max(9.5,9050001));
    out.println(min(9.5,9050001));

    최대값과, 최소값을 반환한다.

    max : 9050001.0
    min : 9.5

     

    ceil()

    out.printf("ceil(%3.1f)=%3.1f%n",  1.1, ceil(1.1));

    ceil의 기능은 전달받은 값을 반올림이 아닌 올림을 수행한다.

    1.1을 입력받아 올림을 하여 2.0를 출력한다.

     

    floor()

    out.printf("floor(%3.1f)=%3.1f%n", 1.5, floor(1.5));

    floor는 ceil과 반대로 값을 모두 버린다.

    1.5를 입력받아 1.0을 출력한다.

     

    round()

    out.printf("round(%3.1f)=%d%n",    1.1, round(1.1));   
    out.printf("round(%3.1f)=%d%n",    1.5, round(1.5));
    out.printf("round(%3.1f)=%d%n",   -1.5, round(-1.5));

    round는 반올림을 수행한다

    1.1을 입력받아 1을 출력

    1.5를 입력받아 2을 출력

    -1.5를 입력받아 더 큰 음수인 -1을 출력

     

    rint()

    out.printf("rint(%3.1f)=%f%n",    -1.5, rint(-1.5));   
    out.printf("rint(%3.1f)=%f%n",    -1.5, rint(-2.5));
    out.printf("rint(%3.1f)=%f%n",    -1.5, rint(-3.5));

    rint는 짝수를 기준으로 반올림을 수행한다.

     

    rint(-1.5)=-2.000000 
    rint(-1.5)=-2.000000
    rint(-1.5)=-4.000000

    반응형

    댓글

Designed by Tistory.