Featured image of post NumberFormatter

NumberFormatter

NumberFormatter

오늘은 스위프트에서 숫자를 표현할 때 사용할 수 있는 NumberFormatter에 대해 알아보자.

A formatter that converts between numeric values and their textual representations.

공식문서에서는 숫자 값과 텍스트 표현을 변환하는 포매터(형식)이라고 정의하고 있다.
단위를 나타낼 때 세자리마다 ,를 찍어준다거나 소숫점 자리수를 제한하거나 할 때 사용한다.

NumberFormatter Style

img 여러가지 스타일로 숫자를 표현할 수 있다.

세자리마다 콤마(,) 표시하기

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import Foundation // NumberFormatter를 사용하기 위해 Foundation을 import 해준다.

let price = 12345600

let formatter = NumberFormatter()
formatter.numberStyle = .decimal

let formatterResult = formatter.string(for: price) ?? ""

print(formatterResult) //12,345,600

소숫점 자리수 제한하기

1
2
3
4
5
6
7
8
let price = 12.345600

let formatter = NumberFormatter()
formatter.maximumFractionDigits = 2 // 소숫점 2자리까지 표시

let formatterResult = formatter.string(for: price) ?? ""

print(formatterResult) //12.35

원화로 표시하기

1
2
3
4
5
6
7
8
9
let price = 12345600

let formatter = NumberFormatter()
formatter.locale = Locale(identifier: "en_KR")
formatter.numberStyle = .currency

let formatterResult = formatter.string(for: price) ?? ""

print(formatterResult) //₩12,345,600

NumberFormatter 말고도 스위프트에서 제공하는 여러가지 Formatter들이 있음을 알게 되었다.

DateFormater, ListFormatter, MeasurementFormatter 등등 시간이 날 때 한번씩 들여다 봐야겠다.

Reference

Apple Developer Doc - NumberFormatter
Apple Developer Doc - NumberFormatter.Style