본문 바로가기

국비필기노트/Java

java 반올림 : Math.round(), String.format(), Printf()

▶Math.round()

 

-. ()안에 있는 소수점 첫자리에서 반올림한다.

-. 양수, 음수 모두 반올림 가능하다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Practice {
 
    public static void main(String[] args) {
        
        Math.round( 20.49); //  20
        Math.round( 20.5 ); //  21
        Math.round( 42   ); //  42
        Math.round(-20.5 ); // -20
        Math.round(-20.51); // -21
         
    }
}
 
cs

 

-. 1000의자리&실수 예시

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Practice {
 
    public static void main(String[] args) {
        
 
        int num = 1556
 
        System.out.println("일의 자리에서 반올림하기: " + (int)Math.round(num/10.0* 10);         // 1560
        System.out.println("십의 자리에서 반올림하기: " + (int)Math.round(num/100.0* 100);     // 1600
        System.out.println("백의 자리에서 반올림하기: " + (int)Math.round(num/1000.0* 1000);     // 2000
        System.out.println("천의 자리에서 반올림하기: " + (int)Math.round(num/10000.0* 10000); // 0
 
        double pie = 3.14159265;
        
        System.out.println("기존값: " + pie);                 // 3.14159265
        System.out.println("소수점 첫째자리까지 반올림: " + Math.round(pie*10)/10.0);     // 3.1
        System.out.println("소수점 둘째자리까지 반올림: " + Math.round(pie*100)/100.0);     // 3.14
        System.out.println("소수점 셋째자리까지 반올림: " + Math.round(pie*1000)/1000.00);// 3.142
 
 
 
    }
}
cs

 

-. 1556에 10.0을 나누면 155.6이다. Math.round는 소숫점 첫자리에서 반올림을 함으로 156이 되고 거기에 10을 곱해 1560이 되어 일의 자리에서 반올림을 한다.

-. 소수를 반올림하여 정수로 만들어주는 함수로 앞에 (int)를 달아준다.

 

 

▶String.format()

 

-. ()안에 있는 소숫점 N번째 자리 수 까지 출력하고 N+1 자리수를 기준으로 반올림한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Practice {
 
    public static void main(String[] args) {
        
 
        double pie = 3.14159265;
        System.out.println(String.format("%.2f", pie));    // 3.14
        System.out.println(String.format("%.3f", pie));    // 3.142
 
 
 
    }
}
cs

 

 

Math.round() vs String.format() 

 

double pi = 3.1415926359;

 

-. String.format("%.6f", num)); 은 소수점 7번째 자리를 반올림하여 소수점 6번째 자리까지만 표현하라는 의미입니       다.  위의 경우, 3.141593 (7번째자리인 6에서 반올림됨)이 나온다.

-.  Math.round()는 실수를 정수로 반올림하여 만들어준다. 그래서 단순히 Math.round(pi);만 해버린다면 3만 출력이       될 것이다. N번째를 원한다면 pi 에 N00을 곱한(실수기준) 값을 round로 반올림해주고 거기에 100을 다시 나누어          N번째 자리까지 출력하게 만들 어준다. String.format에 비해 많이 복잡한 방법

 

>>String은 문자열, Math는 double의 형식이다. 이 값을 문자열로 반환이 필요하면 String.format() 정수나 실수로         반환을 원하면 Math를 사용하는 것이 권고된다. 

>>소수점 및 소수점 표시 목적으로만 반올림 해야하는 경우 혹은 실제 숫자를 반올림 해야할 경우(예:추가 계산에 사용)       같은 단순 반올림 같은 경우엔 Stirng.format()을 사용하는 것이 더 간단하다.

 

 

▶String.format() vs Printf

 

System.out.println (String.format("%.2f", pie)); // String.format
System.out.printf("%.4d",pie); // Printf

 

-. 모든것이 다 동일하지만 출력 여부에 따라 차이가 생긴다: String.format()은 출력될 수 없고 printf는 바로 출력된다

-. String.format()은 반드시 System.out.print 또는 System.out.println을 이용해야한다

  만약 Syso가 없다면 String.format()은 출력되지않는다.

-. Printf()는 ()안에 식을 입력하면 콘솔에 값이 바로 출력된다.

 

'국비필기노트 > Java' 카테고리의 다른 글

자바(java)_메서드  (0) 2022.03.11
java - 2차 배열  (0) 2022.03.11
Java 오류  (0) 2022.03.04
JAVA 설치 방법  (0) 2022.03.03
JOptionPane  (0) 2022.02.28