[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