✅ 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을 지정하지 않아도 별도 작동함