📌 基本の使い方
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
let number = 1234567.89
let result = formatter.string(from: NSNumber(value: number))
print(result ?? "") // → "1,234,567.89"(ロケールにより変化)
3桁ごとのカンマや小数点が自動で入ります。
NSNumber | NumberFormatter💱 通貨形式(Currency)
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = Locale(identifier: "ja_JP")
let price = 1980.0
print(formatter.string(from: NSNumber(value: price)) ?? "") // → "¥1,980"
ロケールを変えることで通貨記号も変化します。
NSNumber | NumberFormatter | Locale📉 パーセント表示
let formatter = NumberFormatter()
formatter.numberStyle = .percent
let ratio = 0.25
print(formatter.string(from: NSNumber(value: ratio)) ?? "") // → "25%"
小数をパーセント形式に変換できます。
NSNumber | NumberFormatter⚙️ よく使うnumberStyle
.none:書式なし.decimal:3桁区切り.currency:通貨.percent:パーセント.scientific:指数表記.spellOut:単語(例:123 → "一二三")
📥 文字列から数値に変換
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
if let number = formatter.number(from: "1,000.5") {
print(number.doubleValue) // → 1000.5
}
文字列を NSNumber 型に変換できます。フォーマットが一致しないと変換は失敗します。
変換に失敗した場合は、nil が返ります。
そのため、変換処理は必ず if let でラップすることをおすすめします。