NumberFormatter

o_jooon_·2022년 7월 9일
1
post-thumbnail

한화를 표시하는 Label을 만들다가, 1000 단위로 컴마(,)가 생기게 하는 방법을 찾아보다 NumberFormatter라는 것을 알게 되었다.
NumberFormatter란 무엇이고 어떻게 사용하는 것인지 알아보자.


NumberFormatter란?

  • 애플 공식 문서

A formatter that converts between numeric values and their textual representations.
-> 숫자 값과 텍스트 표현 사이를 변환하는 포맷터입니다.

NumberFormatter 종류

// String 값을 Optional(NSNumber)로 변환
func number(from: String) -> NSNumber?

// NSNumber 값을 Optional(String)으로 반환
func string(from: NSNumber) -> String?

예시

1000단위로 콤마(,) 표시

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
  • Optional 타입으로 반환되기 때문에 unwrapping을 해주었다.
  • !를 사용하여 강제 언래핑을 할 경우, 크래시가 날 수도 있기 때문에
    ?? “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번째 자리까지만 표시가 된다.
    defulat값이 3으로 되어있는 것 같다.
  • maximumFractionDigits: 소수점 최대 자리
  • minimumFractionDigits: 소수점 최소 자리

주로 쓰이는 두 가지의 형태를 일단 알아봤습니다!
이 외에도 다양하게 쓰일 수 있는데, 조금 더 찾아보고 추가로 정리하려고 합니다!

profile
iOS개발 공부 중입니다.

1개의 댓글

comment-user-thumbnail
2023년 8월 29일

추가 정리는 언제 해주시나요.,? 기다리고 있어요

답글 달기