문홍의 공부장

Java DecimalFormat으로 세 자리마다 콤마(,) 찍기, 소수점 자리수 표시하기 (Decimalformat in java) 본문

개발/Java

Java DecimalFormat으로 세 자리마다 콤마(,) 찍기, 소수점 자리수 표시하기 (Decimalformat in java)

moonong 2020. 1. 26. 15:52
반응형

형식화 클래스는 숫자, 날짜, 텍스트 데이터를 일정한 형식에 맞체 표현하는 방법을 표준화 한 클래스이다. 형식화 클래스는 형식화에 사용되는 패턴을 정의하는데, 이를 통해 데이터를 형식화 시킬 뿐 아니라, 역으로 형식화 된 데이터에서 원본 데이터를 얻어낼 수도 있다. DecimalFormat 은 자바의 대표적인 형식화 클래스이다.

DecimalFormat 클래스

숫자를 형식화 하는데 사용되는 클래스이다. 화폐단위로 세 자리수마다 콤마(,) 를 찍거나, 성적처리 프로그램에서 평균, 표준편차 등을 소수점 n째 자리 수까지 표현하기 등에 사용할 수 있다. 가장 대표적인 패턴 기호로 0 와 # 이 있다.

0, # 패턴 기호는 모두 10진수를 표현한다. 가장 큰 차이점은
0은 실제 값이 존재하지 않더라도 해당 자리수를 나타내며,
#는 값이 없다면 해당 자리수를 출력하지 않는다.

ex) 1234567.89 를 다음 패턴에 맞추어 형식화 할 경우, 출력값은 다음과 같다.

double number = 1234567.89;
        String[] pattern = {
                "0",
                "#",
                "0.0",
                "#.#",
                "0.000",
                "#.###",
                "#,###.###",
                "#E0",
                "0E0",
                "#.#%",
                "\u00A4 #,###"};

        for (int i = 0; i < pattern.length; i++) {
            DecimalFormat df = new DecimalFormat(pattern[i]);
            System.out.printf("%10s: %s\n", pattern[i], df.format(number));
        }

출력값:

 0: 1234568
 #: 1234568
0.0: 1234567.9
#.#: 1234567.9
0.000: 1234567.890
#.###: 1234567.89
#,###.###: 1,234,567.89
#.#%: 123456789%
\u00A4 #,###: ₩ 1,234,568
반응형