안녕하세요. 제임스 입니다.
자바에서 숫자에 콤마를 찍어 금액을 표기 하는 방법에 대해 알아 보겠습니다.
■ DecimalFormat 을 이용하여 숫자에 콤마 찍기
- java.lang.Object
-
- java.text.Format
-
- java.text.NumberFormat
-
- java.text.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
'Java' 카테고리의 다른 글
[ 자바 코딩 ] Java 배열 정렬 (내림차순 vs 올림차순) (2296) | 2021.06.10 |
---|---|
[ 자바 코딩 ] NumberFormatException 원인과 해결방법 (1938) | 2021.06.10 |
[ 자바 코딩 ] Java split() 함수로 문자열 자르기 (2282) | 2021.06.10 |
[ 자바 코딩 ] java substring 으로 문자열 자르기 (3343) | 2021.06.10 |
[ 자바 코딩 ] Java Regular Expression 정규표현식 - 문자열 자르기 (split 함수) (1227) | 2018.07.03 |