본문 바로가기
Thymeleaf

[Thymeleaf] 숫자 구분자(콤마) 표시 - #numbers.formatInteger / #numbers.formatDecimal

by 무사뎀벨레 2022. 5. 10.

 

타임리프 템플릿을 사용하는 와중에 가격의 천(1000) 단위마다 컴마를 붙여야 할 경우가 있었습니다.
이 외에 타임리프를 사용하다 보면 값을 특정 포맷에 맞춰 표기해야 할 경우가 있습니다.

 

 

 

 

 

 

#numbers.formatInteger(표시해야 할 값, 최소 자릿수)


최소 자릿수표시해야 할 값의 자리수보다 많을경우 0으로 채워집니다. 예를 들어, 표시해야할 값이 123과 같이 세 자리 숫자이고 최소 자릿수가 5로 지정이 되면 00123으로 출력이 됩니다. 또한, 소수점표시되지 않고 버려집니다.

 

 

 

 

 

 

#numbers.formatInteger(표시해야 할 값, 최소 자릿수, 구분자)


첫 번째의 #numbers.formatInteger(표시해야 할 값, 최소 자릿수) 와는 다른 점이 구분자가 추가되었다는 점입니다. 저는 가격을 출력할 경우 천의 자리마다 컴마를 표시하고 싶어 이 포맷을 사용하였습니다.

<div data-th-text="${#numbers.formatInteger(result.totalPrice, 3, 'COMMA') + '원'}"></div>

위와 같이 3자리마다 COMMA(,)를 추가하였습니다. 구분자는 COMMA 이외에 POINT, WHITESPACE, NONE, DEFAULT 가 들어갈 수 있으며, Default는 COMMA입니다. 주의해야 할 점은 최소 자릿수를 지정하고 싶지 않을 경우엔, 최소 자릿수에 1을 사용하여야 값 앞에 0이 채워지지 않습니다.

 

 

 

 

 

 

#numbers.formatDecimal(표시해야 할 값, 최소 정수 자릿수, 최소 소수 자릿수)


이 메소드를 통하여 정수, 소수 모두 최소 자릿수를 지정할 수 있습니다. 예를 들어, #numbers.formatDecimal(12.3, 3, 2)이라고 입력하면 012.34라고 표시됩니다.

반응형

댓글