[Swift] NumberFormatter

잡담

안녕하세요~~~ 정말 오랜만에 게시글을 쓰는 것 같네요 ㅎㅎ 😄

최근에 일정이 너무 바빠서 게시글을 쓸 틈이 없었던 것 같아요.. 과제, 면접, 과제, 면접..

오늘은 좀 여유가 생겨서 잘못이해하고 있던 부분들이나 새롭게 알게된 것들에 대해 서술해보려고 합니다.

학습할 내용

  • 참고 링크 : https://jinsangjin.tistory.com/104

제목을 보시면 알다시피 NumberFormatter입니다.

사실 이런게 있는 줄 몰랐어요 ㅋㅋㅋ 제가 아는 건 DateFormatter 뿐이었거든요 ㅎㅎ

개발했던 과제의 요구사항 중에 3자리 수 마다 콤마찍기가 있었어요.

숫자를 String으로 변환해서 배열로 쪼갠다음 넣어줄까 생각했는데, 뭔가.. 우리 갓 Swift에 있을 것 같은 느낌이 들어서 검색해봤더니 NumberFormatter가 있더라구요!!!

자! 그럼 배워봅시다.

let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
let price = 12345678
let result = numberFormatter.string(for: price)!

print(result)   //12,345,678

엄청 간단하지 않나요?? 그냥 숫자 넣으면 저렇게 변환되어서 나옵니다!! 와!!! 유레카!!

numberStyle을 .decimal로 설정해주면 저렇게 나옵니다.

더 나아가서 소수점 자리수까지 설정할 수 있는데요.

//소수점 최대 자리수 지정
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
numberFormatter.maximumFractionDigits = 10
let price = 12345678.12345678
let result = numberFormatter.string(for: price)!

print(result)   //12,345,678.12345678

이렇게 소수점도 조절이 가능합니다. 항상 10자리 소수점을 유지하고 싶으면 minimum도 똑같이 10으로 설정해주면 항상 10자리가 나옵니다.

저는 딱 이 기능만 활용을 했었는데, 다양한 format을 유용하게 쓸 수 있다고 하네요.

.percent -> 30%

.currency -> $10,000,000

.spellOut -> ten thousand