JSTL의 <fmt:formatNumber> 태그는 숫자, 백분율(퍼센트), 통화 등 다양한 수치 데이터를 원하는 형식으로 출력할 때 사용하는 강력한 포매팅 도구입니다. 특히 JSP 페이지에서 금액이나 비율을 표시할 때 유용하게 활용됩니다.
주요 속성 정리
<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 |
백분율 포매팅 예제 코드
아래 예제는 type = "percent" 속성을 활용해 숫자를 백분율 형식으로 변환하는 방법을 보여줍니다.
<%@ 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 Tag</title>
</head>
<body>
<h3>Number Format:</h3>
<c:set var = "balance" value = "120000.2309" />
<p>Formatted Number (1): <fmt:formatNumber type = "percent" maxIntegerDigits="3" value = "${balance}" /></p>
<p>Formatted Number (2): <fmt:formatNumber type = "percent" minFractionDigits = "10" value = "${balance}" /></p>
<p>Formatted Number (3): <fmt:formatNumber type = "percent" maxIntegerDigits = "3" value = "${balance}" /></p>
</body>
</html>
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Number Format: Formatted Number (1): 023% Formatted Number (2): 12,000,023.0900000000% Formatted Number (3): 023%
예제 결과 해설
Formatted Number (1)과 (3)은 maxIntegerDigits="3" 옵션으로 인해 정수부가 최대 3자리까지만 표시되어 023%로 출력되었습니다. 반면 Formatted Number (2)는 minFractionDigits="10" 옵션으로 소수점 이하 10자리까지 강제로 표시되어 12,000,023.0900000000%와 같이 출력된 것을 확인할 수 있습니다.
이처럼 <fmt:formatNumber> 태그의 자릿수 관련 속성들을 조합하면, JSP에서 원하는 백분율 형식을 자유롭게 제어할 수 있습니다.