본문으로 바로가기
728x90

목표 -- 숫자형 데이터(돈, 시간[~~시간], 단순 콤마 구분이 필요한 경우)에 천 단위 콤마를 붙여 출력하기

 

 

https://docs.oracle.com/en/java/javase/12/docs/api/java.base/java/text/DecimalFormat.html

 

DecimalFormat (Java SE 12 & JDK 12 )

DecimalFormat is a concrete subclass of NumberFormat that formats decimal numbers. It has a variety of features designed to make it possible to parse and format numbers in any locale, including support for Western, Arabic, and Indic digits. It also support

docs.oracle.com

 

.jsp 페이지에 추가 하기
//최상단 
<%@ page import="java.text.*" %>

~~~
<%
DecimalFormat df = new DecimalFormat("###,###");
%>
// 실 데이터 입력중
<body>
<%=df.format(value) %>
</body>

위 코드에서 value값에 데이터 (숫자)를 넣으면 천단위로 분류되어 출력된다.

 


DecimalFormat 설정 

ex) num = 1234.5678;

--------
DecimalFormat df;

//10 진수 - 빈자리는 "0"
df = new DecimalFormat("0");
System.out.println(df.format(num));	//출력 값 1234

//10 진수 - 빈자리는 "0"
df = new DecimalFormat("0.0");
System.out.println(df.format(num));	//출력 값 1234.5

//10 진수 - 빈자리는 "0"
df = new DecimalFormat("00000.00000");
System.out.println(df.format(num));	//출력 값 01234.56780

//10 진수 - 빈자리 안채움
df = new DecimalFormat("#");
System.out.println(df.format(num));	//출력 값 1234

//10 진수 - 빈자리 안채움
df = new DecimalFormat("#########.###");
System.out.println(df.format(num));	//출력 값 1234.567

//10 진수 - 빈자리 안채움, 천단위 구분자
df = new DecimalFormat("###,###");
System.out.println(df.format(num));	//출력 값 1,234

//NumberFormat을 이용해 통화표시 지정
//Locale을 사용해 국가 지정시 해당 국가의 통화 기호 및 자리수 구분가능
//국가 한국
NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.KOREA);

//소수점 두자리 까지 지정
nf.setMaximumFractionDigits(2);
System.out.println(nf.format(n));	//출력 값 ₩1,234.56

 

패턴 설명 예시
0 10진수, 빈자리는 0으로 채운다 set = 1234
("0000") : result = 1234
("0.0") : result = 1234.0
# 10진수, 빈자리를 채우지 않는다 set = 1234
("#") : result = 1234
("#.#") : result = 1234
. 소수점 표시하기 set = 1234.567
("0.0") : result = 1234.5
("#.#") : result = 1234.5
, 단위 구분 기호 set = 123456.789
("###,###") : result = 123,456
+, - 음수 양수 표시 set = 1234
("+#") : result = +1234
("-#") : result = -1234
% 100을 곱하고 %를 붙임
백분율 표시
set = 1234.56
("#.###%") : result = 123456%
728x90