🔢 NumberFormatterの使い方

NumberFormatter は、Swiftで 数値を文字列に変換 したり、通貨・パーセント・3桁区切り などの形式に整形するための Foundation クラスです。


…読み込み中…

📌 基本の使い方

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 でラップすることをおすすめします。

NSNumber | NumberFormatter

📚 参考リンク