JSP에서 <fmt:formatNumber> 태그는 숫자, 백분율(퍼센트), 통화를 원하는 형식으로 출력할 때 사용하는 JSTL 포맷팅 태그입니다. 이 태그를 활용하면 천 단위 구분 기호 추가, 소수점 자릿수 조절, 통화 기호 표시 등 다양한 숫자 포맷팅을 손쉽게 처리할 수 있습니다.
주요 속성
<fmt:formatNumber> 태그에서 사용할 수 있는 주요 속성은 다음과 같습니다.
| 속성 | 설명 | 필수 여부 | 기본값 |
|---|---|---|---|
| value | 표시할 숫자 값 | 필수 | 없음 |
| type | NUMBER(숫자), CURRENCY(통화), PERCENT(백분율) 중 선택 | 선택 | NUMBER |
| pattern | 출력에 적용할 사용자 정의 포맷 패턴 지정 | 선택 | 없음 |
| currencyCode | 통화 코드 (type = "currency"일 때 사용) | 선택 | 기본 로케일 설정값 |
| currencySymbol | 통화 기호 (type = "currency"일 때 사용) | 선택 | 기본 로케일 설정값 |
| groupingUsed | 천 단위 그룹화(콤마) 사용 여부 (TRUE 또는 FALSE) | 선택 | true |
| maxIntegerDigits | 출력할 정수부의 최대 자릿수 | 선택 | 없음 |
| minIntegerDigits | 출력할 정수부의 최소 자릿수 | 선택 | 없음 |
| maxFractionDigits | 출력할 소수부의 최대 자릿수 | 선택 | 없음 |
| minFractionDigits | 출력할 소수부의 최소 자릿수 | 선택 | 없음 |
| var | 포맷된 숫자를 저장할 변수 이름 | 선택 | 페이지에 바로 출력 |
| scope | 포맷된 숫자를 저장할 변수의 유효 범위 | 선택 | page |
사용 예제
다음은 <fmt:formatNumber> 태그를 활용해 다양한 방식으로 숫자를 포맷하는 예제입니다.
<%@ taglib prefix = "c" uri = "https://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "fmt" uri = "https://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>JSTL fmt:formatNumber 태그</title>
</head>
<body>
<h3>숫자 포맷:</h3>
<c:set var = "balance" value = "120000.2309" />
<p>포맷된 숫자 (1): <fmt:formatNumber value = "${balance}" type = "currency"/></p>
<p>포맷된 숫자 (2): <fmt:formatNumber type = "number" maxIntegerDigits = "3" value = "${balance}" /></p>
<p>포맷된 숫자 (3): <fmt:formatNumber type = "number" maxFractionDigits = "3" value = "${balance}" /></p>
<p>포맷된 숫자 (4): <fmt:formatNumber type = "number" groupingUsed = "false" value = "${balance}" /></p>
</body>
</html>위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
숫자 포맷: 포맷된 숫자 (1): £120,000.23 포맷된 숫자 (2): 000.231 포맷된 숫자 (3): 120,000.231 포맷된 숫자 (4): 120000.231
예제 결과 해설
- (1) type을 "currency"로 지정하여 통화 형식으로 출력되며, 기본 로케일에 따라 통화 기호가 함께 표시됩니다.
- (2) maxIntegerDigits를 3으로 설정해 정수부가 최대 3자리까지만 출력됩니다.
- (3) maxFractionDigits를 3으로 설정해 소수점 아래 세 번째 자리까지 반올림되어 표시됩니다.
- (4) groupingUsed를 false로 지정하여 천 단위 콤마 없이 숫자가 그대로 출력됩니다.