Template Engines/Freemarker

Freemarker > 숫자 형식 설정

Krevis 2025. 10. 28. 07:10

 

문제

프리마커에서는 아래와 같이 Preset을 제공하며 number가 기본값이다

number가 기본값이므로 화면단에서 값을 바인딩하였을 때 숫자가 천이 넘으면 ,가 포함되어 연동 코드에서 버그 유발 가능성이 있음

예를 들어 파라미터의 값에 ,가 포함된 숫자가 설정된다거나..

 

해결

@Configuration
public class FreeMarkerConfig {

    public FreeMarkerConfig(freemarker.template.Configuration configuration) {
        configuration.setNumberFormat("computer");
    }
}

 

위와 같이 computer로 설정하여 무조건 숫자로 출력되게 하고, UI에서 천단위 구분이 필요하다면 아래와 같이 사용하면 된다

${count?string["#,###"]} <#-- 천단위 콤마 -->
${price?string["#,##0.00"]} <#-- 소수점 2자리 -->
${ratio?string["percent"]} <#-- 백분율 -->
${value?string["computer"]} <#-- computer 모드 -->