한화를 표시하는 Label을 만들다가, 1000 단위로 컴마(,)가 생기게 하는 방법을 찾아보다 NumberFormatter라는 것을 알게 되었다.
NumberFormatter란 무엇이고 어떻게 사용하는 것인지 알아보자.
A formatter that converts between numeric values and their textual representations.
-> 숫자 값과 텍스트 표현 사이를 변환하는 포맷터입니다.
// String 값을 Optional(NSNumber)로 변환
func number(from: String) -> NSNumber?
// NSNumber 값을 Optional(String)으로 반환
func string(from: NSNumber) -> String?
let num = 12345678
let numberFormatter = NumberFormatter() // NumberFormatter 생성
numberFormatter.numberStyle = .decimal // decimal 형태의 값으로 변경
let result = numberFormatter.string(for: num)! // Optional이므로 unwrappung
print(num) // 12345678
print(result) // 12,345,678
!
를 사용하여 강제 언래핑을 할 경우, 크래시가 날 수도 있기 때문에?? “default 값”
을 사용하거나 옵셔널 바인딩을 해주는게 좋다.let num = 1234.5678
let numberFormatter = NumberFormatter() // NumberFormatter 생성
numberFormatter.maximumFractionDigits = 2 // 소수점 2번째 자리까지 표시
let result = numberFormatter.string(for: num)! // Optional이므로 unwrapping
print(num) // 1234.5678
print(result) // 1234.56
maximumFractionDigits
의 값을 설정해 주지 않고 result를 출력하면 소수점 3번째 자리까지만 표시가 된다.maximumFractionDigits
: 소수점 최대 자리minimumFractionDigits
: 소수점 최소 자리주로 쓰이는 두 가지의 형태를 일단 알아봤습니다!
이 외에도 다양하게 쓰일 수 있는데, 조금 더 찾아보고 추가로 정리하려고 합니다!
추가 정리는 언제 해주시나요.,? 기다리고 있어요