반응형
NumberFormatter
: 숫자 값과 텍스트 사이를 변환하는 formatter
숫자 / 금액에 자동으로 쉽표를 추가해주는 formatter가 있는 지 몰랐던 5개월 전의 나는 귀엽게도 다음과 같은 코드로 가격에 쉼표를 표시해주었다. 😆
let price = UILabel()
var priceArray = Array("50000")
if priceArray.count == 4 {
priceArray.insert(",", at: 1)
} else if priceArray.count == 5 {
priceArray.insert(",", at: 2)
}
price.text = String(priceArray) // "50,000"
숫자가 4개면 두번째 자리에 쉼표를, 5개면 세번째 자리에 쉼표를 추가해준다는 깜찍한 생각이라니 ㅎㅎ
만원단위까지밖에 없었기에 망정이지.. 금액 더 커지면 어쩌려고..? ㅋㅋㅋㅋㅋ
5개월 후의 나는 이제, 세자리 수 마다 자동으로 쉼표를 추가해주는 NumberFormatter 를 활용하여, 쪼금 더 스마트한 코딩을 해보려고 한다.
다음과 같이 NumberFormatter() 의 numberStyle을 .decimal로 설정하여 자동으로 숫자를 변환해주도록 하였다.
let price = UILabel()
price.text = moneyFormatter(price: "50000") // "50,000"
func moneyFormatter(price: String) -> String {
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
if !(isStringEmptyCheck(str: money)), let priceInt = Int(price) {
return numberFormatter.string(from: priceInt as! NSNumber)!
}
return ""
}
+ NumberFormatter()의 numberStyle에 .currency 스타일이 있길래 해보니 이거는 "$50,000.00" 으로 변환이 되더라.
number formatter locale에 등록된 화폐 단위로 변환이 되는거라고 한다.
728x90
반응형
'Swift iOS 앱 개발 > Swift' 카테고리의 다른 글
[Swift iOS] CLLocationManager 위치정보 GPS 주소 가져오기 (0) | 2021.10.06 |
---|---|
[Swift iOS] WKNavigationDelegate 하이브리드 앱에서 webview 탐색 및 관리 (0) | 2021.10.05 |
[Swift iOS] webview 로딩 완료 감지 (feat. WKNavigationDelegate) (0) | 2021.09.27 |
[Swift iOS] 키보드가 textField를 가릴 때 해결법 (0) | 2021.09.23 |
[Swift iOS] NotificationCenter & Observer (0) | 2021.09.23 |