본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

DecimalFormat, 숫자데이터를 다양한 형식으로 표현하다

우선 예시코드로 우선 이해해보자.

 

패턴

아래의 코드를 보면 1234567.89란 숫자를 #,##0.00형식으로 바꾸기로 지정하고 출력했다.

import java.text.DecimalFormat;

public class DecimalFormatExample {

    public static void main(String[] args) {
        double number = 1234567.89;

        // 패턴 정의: #는 숫자가 없으면 표시하지 않음, 0은 반드시 표시
        DecimalFormat decimalFormat = new DecimalFormat("#,##0.00");

        // 숫자를 형식화하여 문자열로 변환
        String formattedNumber = decimalFormat.format(number);

        System.out.println("Formatted Number: " + formattedNumber);
    }
}
//Formatted Number: 1,234,567.89

 

 

기호

아래의 코드를 보면 양수와 음수를 정해진 패턴으로 정의하고,

양수일경우에는 $만추가, 음수일경우에는 ()$를 추가하도록 했다.

import java.text.DecimalFormat;

public class SymbolFormattingExample {

    public static void main(String[] args) {
        double positiveNumber = 1234.56;
        double negativeNumber = -5678.90;

        // 패턴 정의
        DecimalFormat decimalFormat = new DecimalFormat("#,##0.00");

        // 양수를 형식화하여 문자열로 변환 (달러 기호 추가)
        decimalFormat.setPositivePrefix("$");
        String formattedPositiveNumber = decimalFormat.format(positiveNumber);
        System.out.println("Formatted Positive Number: " + formattedPositiveNumber);

        // 음수를 형식화하여 문자열로 변환 (괄호로 감싸고 달러 기호 추가)
        decimalFormat.setPositivePrefix("(");
        decimalFormat.setPositiveSuffix(")$");
        String formattedNegativeNumber = decimalFormat.format(negativeNumber);
        System.out.println("Formatted Negative Number: " + formattedNegativeNumber);
    }
}
//Formatted Positive Number: $1,234.56
//Formatted Negative Number: ($5,678.90)

 

 

Format 기호와 패턴을 알아보자.

 

0

숫자를 표시할 자리, 숫자가 없으면 0으로 나타난다.

DecimalFormat decimalFormat = new DecimalFormat("0000");
System.out.println(decimalFormat.format(123));  // 출력: 0123

 

#

숫자를 표시할 자리, 숫자가 없으면 표시되지않는다.

DecimalFormat decimalFormat = new DecimalFormat("####");
System.out.println(decimalFormat.format(123));  // 출력: 123

 

.

소수점

DecimalFormat decimalFormat = new DecimalFormat("#,##0.00");
System.out.println(decimalFormat.format(1234.567));  // 출력: 1,234.57

 

-

음수

DecimalFormat decimalFormat = new DecimalFormat("0.00;-0.00");
System.out.println(decimalFormat.format(-12.34));  // 출력: -12.34

 

,

천단위 구분기호

DecimalFormat decimalFormat = new DecimalFormat("#,##0");
System.out.println(decimalFormat.format(1234567));  // 출력: 1,234,567

 

E

지수기호, 거듭제곱을 나타냄, E0은 지수의 최소 자릿수를 나타낸다.

DecimalFormat decimalFormat = new DecimalFormat("#.##E0");
System.out.println(decimalFormat.format(12345.6789));  // 출력: 1.23E4

 

;

양수와 음수 패턴을 구분하다

DecimalFormat decimalFormat = new DecimalFormat("0.00;(-0.00)");
System.out.println(decimalFormat.format(-12.34));  // 출력: (12.34)

 

%

백분율

DecimalFormat decimalFormat = new DecimalFormat("0.00%");
System.out.println(decimalFormat.format(0.123));  // 출력: 12.30%

 

\u2030

천분율

DecimalFormat decimalFormat = new DecimalFormat("0.00\u2030");
System.out.println(decimalFormat.format(0.123));  // 출력: 123.00‰

 

\u00A4

통화

DecimalFormat decimalFormat = new DecimalFormat("\u00A4#,##0.00");
System.out.println(decimalFormat.format(1234.56));  // 출력: $1,234.56

 

'

묶어 리터럴로 사용

DecimalFormat decimalFormat = new DecimalFormat("'Total: '0.00");
System.out.println(decimalFormat.format(123.45));  // 출력: Total: 123.45