[Localized Number] 2편: NumberFormatter를 이용한 국가별 숫자 표기 변환

baecheese·2021년 2월 15일
0
post-thumbnail

목차

🍬 NumberFormatter에서 사용할 주요 API

// Returns an NSNumber object created by parsing a given string.
open func string(from number: NSNumber) -> String?
    
// Returns a string containing the formatted value of the provided number object.
func string(from: NSNumber) -> String?
    
// Returns a localized number string with the specified style.
@available(iOS 4.0, *)
open class func localizedString(from num: NSNumber, number nstyle: NumberFormatter.Style) -> String

1. numberFormatter에 locale을 설정합니다.

NumberFormatter의 Locale을 설정하는 방법은 두 가지가 있습니다.

1-1 ) identifier 직접 설정

let numberFormatter: NumberFormatter = NumberFormatter()
numberFormatter.locale = Locale(identifier: "en_US")
  • 변환하고자하는 국가/언어의 identifier를 직접 설정할 수 있습니다.
    • 예시 코드의 en_USEnglish (United States)의 identifier 입니다.
    • 찾고 싶은 iOS Locale Identifier가 있으면 이 문서를 참고해주세요

1-2) 유저의 지역 설정에 따름

// A locale representing the user's region settings at the time the property is read.
static var current: Locale { get }
  • current 는 특정 국가/언어의 identifier를 넣어주지 않아도, 유저의 지역 설정을 따를 수 있게 해주는 Property 입니다.
  • 참고 링크 - Apple Developer Documentation
let numberFormatter: NumberFormatter = NumberFormatter()
// numberFormatter.locale = .current (생략 가능)
  • NumberFormatter에서는 locale을 따로 설정해주지 않으면 default로 .current가 설정 됩니다.

2. numberFormatter에 numberStyle을 설정한다.

let numberFormatter = NumberFormatter()
numberFormatter.locale = Locale(identifier: "en_US") // << identifier here
numberFormatter.numberStyle = .decimal // 💛 소숫점까지 모두 커버하려면 decimal 필수

3. Number String을 변환한다.

3-1. String to NSNumber

// 3-1 Number String -> NSNumber
let number: NSNumber = numberFormatter.number(from: "123456")

3-2. NSNumber to LocalizedString

// 3-2 NSNumber -> Number String
numberFormatter.numberStyle = .decimal
let localizedNumberString = numberFormatter.string(from: number)

🔜 .. 3편에서 계속 .. 🔜

profile
iOS Developer

0개의 댓글