안녕하세요. 제임스 입니다. 

 

자바에서 숫자에 콤마를 찍어 금액을 표기 하는 방법에 대해 알아 보겠습니다. 

 

 

■ DecimalFormat 을 이용하여 숫자에 콤마 찍기

 

 

DecimalFormat 은 NumberFormat 을 상속받고 있습니다. 

 

DecimalFormat(String pattern) 컨스트럭터를 이용하여 표현하고자 하는 패턴을 입력합니다. 

 

패턴 관련 정보는 아래 링크 참조 하시면 됩니다. 

https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html#numberpattern

 

 

1
DecimalFormat formatter = new DecimalFormat("###,###");
cs

 

위와 같이 패턴을 ###,### 와 같은 형식으로 입력 했습니다. 

이는 앞에 세자리 숫자 + " , " + 세자리 숫자 형태의 패턴을 의미 합니다. 

 

즉, 6자리가 넘어 가더라도 뒤 세자리 숫자 앞에 콤마 ( , ) 를 붙여 주게 되므로 백만 이상값을 표기 하는데 아무런 문제가 없습니다. 

 

사용 방법은 아래와 같습니다. 

 

1
formatter.format(12345);
cs

 

DecimalFormat 클래스의 format(long number) 함수를 이용하여 원하는 패턴의 결과 값을 가져올 수 있습니다. 

 

 

예제를 보시겠습니다. 

 

1
2
3
4
5
6
7
8
9
10
11
DecimalFormat formatter = new DecimalFormat("###,###");
        
int price1 = 123;
int price2 = 1234;
int price3 = 123456;
int price4 = 1234567;
        
System.out.println("price1 금액 표기 결과 ["+price1+"] ==> "+formatter.format(price1));
System.out.println("price2 금액 표기 결과 ["+price2+"] ==> "+formatter.format(price2));
System.out.println("price3 금액 표기 결과 ["+price3+"] ==> "+formatter.format(price3));
System.out.println("price4 금액 표기 결과 ["+price4+"] ==> "+formatter.format(price4));
cs

 

실행 결과는 아래와 같습니다. 

 

Results

price1 금액 표기 결과 [123] ==> 123

price2 금액 표기 결과 [1234] ==> 1,234

price3 금액 표기 결과 [123456] ==> 123,456

price4 금액 표기 결과 [1234567] ==> 1,234,567

 

 

▶ 숫자에 콤마 표기 및 소수점 표기 하기

 

소숫점 까지 표기 하는 방법은 의외로 쉽습니다. 

 

1
DecimalFormat formatter = new DecimalFormat("###,###.##");
cs

 

패턴을 ###,###.## 

위와 같이 기존패턴에 .## 을 추가 하여 소수점 두자리 까지 표현 하는 것으로 정의 했습니다. 

이때 소수점 두번째 자리 아래는 반올림처리 됩니다. 

 

1
2
3
4
5
6
7
8
9
DecimalFormat formatter = new DecimalFormat("###,###.##");
        
int price1 = 1234567;
double price2 = 1234567.123;
double price3 = 1234567.127;
        
System.out.println("price1 금액 표기 결과 ["+price1+"] ==> "+formatter.format(price1));
System.out.println("price2 금액 표기 결과 ["+price2+"] ==> "+formatter.format(price2));
System.out.println("price3 금액 표기 결과 ["+price3+"] ==> "+formatter.format(price3));
cs

 

실행 결과는 아래와 같습니다. 

 

Results

price1 금액 표기 결과 [1234567] ==> 1,234,567

price2 금액 표기 결과 [1234567.123] ==> 1,234,567.12

price3 금액 표기 결과 [1234567.127] ==> 1,234,567.13

 

price2 와 price3 의 소수점 세번째 자리값을 비교 해보시면 반올림 처리 됨을 알 수 있습니다. 

 

 

 도움이 되셨다면 로그인이 필요 없는 

▼ 하트 클릭 한번 부탁 드립니다 

감사합니다 :D

 

 

블로그 이미지

쉬운코딩이최고

Android, Java, jsp, Linux 등의 프로그래밍 언어를 소개 합니다.

,