JSP/다국어 처리
숫자 태그의 기능과 사용법
별초롱언니
2025. 5. 29. 09:36
✅ What: fmt:formatNumber란?
- 숫자를 원하는 형식(콤마, 소수점, 퍼센트, 통화 등)으로 출력할 수 있는 JSTL 태그
✅ Why: 왜 쓰나?
- 백엔드에서 넘겨준 숫자 데이터를 사람이 보기 좋게 표현하기 위해 사용
- 예: 1500000 → 1,500,000 으로 표시
✅ How: 기본 사용법
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix = "fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p> 숫자 : <fmt:formatNumber value="3200100" />
<p> <fmt:formatNumber value="3200100" type="number"/>
<p> <fmt:formatNumber value="3200100" type="number" groupingUsed="false"/>
<p> <fmt:formatNumber value="3200100" type="currency" groupingUsed="true"/>
<p> <fmt:formatNumber value="3200100" type="currency" currencySymbol="&"/>
<p> <fmt:formatNumber value="0.45" type="percent"/>
<p> <fmt:formatNumber value="3200100" minIntegerDigits="10" minFractionDigits="2"/>
<p> <fmt:formatNumber value="3200100.45" pattern=".000"/>
<p> <fmt:formatNumber value="3200100.456" pattern="#,#00.0#"/>
</body>
</html>

속성명 | 설명 |
value | 포맷할 숫자 값 |
type | number / currency / percent |
pattern | 직접 숫자 패턴 지정 (예: #,##0.00) |
groupingUsed | 천 단위 구분 쉼표 사용 여부 (true / false) |
minFractionDigits | 소수점 최소 자릿수 |
maxFractionDigits | 소수점 최대 자릿수 |
💡 Tip or Pitfall
- 💥 value에 문자열이나 null을 넣으면 에러 발생 가능 → 항상 숫자여야 함
- 🌐 currency나 percent는 현재 locale 설정에 영향을 받음
→ 예: <fmt:setLocale value="en_US" /> 설정하고 출력하면 $1,000.00 같은 결과가 나옴 - pattern 속성은 type을 지정하지 않아도 별도 작동함