カテゴリ: Swift 更新日: 2026/01/08

Swiftで数値と文字列を相互変換!NumberFormatterで桁区切りや通貨表示をわかりやすく解説

Swift 数値⇄文字列 変換|NumberFormatterで桁区切り・通貨表示
Swift 数値⇄文字列 変換|NumberFormatterで桁区切り・通貨表示

先生と生徒の会話形式で理解しよう

生徒

「Swiftで数字を文字列にしたり、文字列を数字に戻したりすることってできますか?」

先生

「はい、できますよ。数値と文字列の変換はとてもよく使う操作です。例えば『1000』という数値を『1,000』のように桁区切りで表示したり、通貨記号を付けて『¥1,000』と表示するのも可能です。」

生徒

「なるほど!それなら買い物アプリや家計簿アプリを作るときに役立ちそうですね。」

先生

「その通りです。では実際に、数値と文字列の変換方法を見ていきましょう!」

1. Swiftで数値を文字列に変換する基本

1. Swiftで数値を文字列に変換する基本
1. Swiftで数値を文字列に変換する基本

まずは一番シンプルな「数値から文字列」への変換です。SwiftではString()を使うことで簡単にできます。


let number = 1234
let text = String(number)
print(text)

このコードを実行すると、「1234」という文字列が出力されます。


1234

この方法はシンプルですが、桁区切りや通貨表記はされません。そのため、見やすく整形するにはNumberFormatterを使います。

2. Swiftで文字列を数値に変換する

2. Swiftで文字列を数値に変換する
2. Swiftで文字列を数値に変換する

逆に「文字列から数値」へ変換することもよくあります。ユーザーが入力した数字を計算に使う場合などに必要です。SwiftではInt()Double()を使います。


let text = "5678"
if let number = Int(text) {
    print(number + 10)
}

このコードでは、文字列「5678」を整数に変換し、さらに「+10」をして「5688」が表示されます。


5688

もし文字列が数字でない場合はnil(値がないことを示す特別なもの)になるので、if letで安全に扱うのがポイントです。

3. NumberFormatterで桁区切り表示

3. NumberFormatterで桁区切り表示
3. NumberFormatterで桁区切り表示

大きな数字を見やすくするには「桁区切り」が便利です。人間が読むときに「1000000」よりも「1,000,000」のほうがわかりやすいですよね。SwiftではNumberFormatterを使って自動的に桁区切りを入れられます。


import Foundation

let number = 1234567
let formatter = NumberFormatter()
formatter.numberStyle = .decimal

if let formatted = formatter.string(from: NSNumber(value: number)) {
    print(formatted)
}

このコードを実行すると「1,234,567」と表示されます。numberStyle = .decimalと指定するだけで、自動で桁区切りが入ります。


1,234,567

4. NumberFormatterで通貨表示

4. NumberFormatterで通貨表示
4. NumberFormatterで通貨表示

次に「通貨表示」です。家計簿アプリやショッピングアプリで「¥」「$」などをつけたいときに便利です。


let price = 2500
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.currencyCode = "JPY"

if let formatted = formatter.string(from: NSNumber(value: price)) {
    print(formatted)
}

このコードを実行すると「¥2,500」と表示されます。currencyCodeを「USD」にすればドル「$」、EURにすればユーロ「€」として表示されます。


¥2,500

5. 実生活の例えで理解しよう

5. 実生活の例えで理解しよう
5. 実生活の例えで理解しよう

桁区切りや通貨表示は、実生活の「値札」や「レシート」と同じです。例えばスーパーで「1000円」とだけ書かれているより「¥1,000」と書かれていた方が見やすく、誤解が少なくなります。プログラミングでも同じで、ユーザーに数字を見やすく提示することはとても大切です。

6. まとめて実践コード

6. まとめて実践コード
6. まとめて実践コード

最後に、今回紹介した数値と文字列の変換、桁区切り、通貨表示をまとめて使ったサンプルを紹介します。


import Foundation

let text = "3000"

// 文字列を数値に変換
if let number = Int(text) {
    print("数値に変換: \(number)")

    // 数値を文字列に変換
    let stringValue = String(number)
    print("文字列に変換: \(stringValue)")

    // 桁区切り表示
    let formatter = NumberFormatter()
    formatter.numberStyle = .decimal
    if let formatted = formatter.string(from: NSNumber(value: number)) {
        print("桁区切り: \(formatted)")
    }

    // 通貨表示(日本円)
    formatter.numberStyle = .currency
    formatter.currencyCode = "JPY"
    if let currency = formatter.string(from: NSNumber(value: number)) {
        print("通貨表示: \(currency)")
    }
}

実行すると次のように表示されます。


数値に変換: 3000
文字列に変換: 3000
桁区切り: 3,000
通貨表示: ¥3,000

まとめ

まとめ
まとめ

Swiftで数値と文字列を扱う重要性の振り返り

ここまで、Swiftにおける数値と文字列の相互変換について、基礎から実践的な使い方まで段階的に学んできました。 アプリ開発では、内部処理としては数値型で計算を行い、画面に表示する際には文字列として見やすく整形する場面が非常に多くあります。 例えば、ユーザーが入力した金額、商品の価格、合計金額、ポイント数、スコア表示など、ほぼすべてのアプリで数値と文字列の変換は欠かせません。

単純に String()Int() を使うだけでも変換は可能ですが、それだけでは実用的とは言えません。 桁区切りがない数字は読みにくく、通貨記号がない金額は誤解を生む可能性があります。 そこで登場するのが NumberFormatter です。 NumberFormatterを使うことで、桁区切り、通貨表示、小数点の扱いなどを柔軟に制御でき、ユーザーにとって直感的で理解しやすい表示を実現できます。

NumberFormatterを使うメリット

NumberFormatterは、SwiftやiOSアプリ開発において非常に強力なクラスです。 桁区切りの有無、通貨の種類、ロケールによる表示形式の違いなどを自動で処理してくれるため、開発者が細かい文字列操作を行う必要がありません。 特に家計簿アプリ、ショッピングアプリ、売上管理アプリ、予約システムなどでは、金額表示の正確さと見やすさがユーザー体験に直結します。

また、文字列から数値へ変換する際に if let を使って安全に処理する考え方も重要なポイントでした。 ユーザー入力は必ずしも正しい数値とは限らないため、nilを考慮した安全な実装がアプリの品質を高めます。 こうした基本を理解しておくことで、エラーの少ない堅牢なSwiftコードを書くことができるようになります。

まとめて確認するサンプルプログラム

ここで改めて、数値と文字列の変換、桁区切り、通貨表示を一連の流れとして確認できるサンプルを掲載します。 記事内で使用してきたクラスや書き方と同じ構成になっているため、復習としても役立ちます。


import Foundation

let inputText = "12000"

// 文字列を数値に変換
if let value = Int(inputText) {

    // 数値をそのまま文字列に変換
    let simpleString = String(value)
    print("そのまま表示: \(simpleString)")

    // 桁区切り表示
    let formatter = NumberFormatter()
    formatter.numberStyle = .decimal
    if let decimalString = formatter.string(from: NSNumber(value: value)) {
        print("桁区切り表示: \(decimalString)")
    }

    // 通貨表示
    formatter.numberStyle = .currency
    formatter.currencyCode = "JPY"
    if let currencyString = formatter.string(from: NSNumber(value: value)) {
        print("通貨表示: \(currencyString)")
    }
}

このように、一つの数値データを用途に応じて表示形式を変えることで、アプリの使いやすさは大きく向上します。 Swiftの基本構文とあわせて、NumberFormatterの使い方をしっかり身につけておくことが重要です。

先生と生徒の振り返り会話

生徒

「最初は数字を文字列に変換するだけなら簡単だと思っていましたが、実際には表示の仕方がとても大事なんですね。 桁区切りや通貨記号があるだけで、すごく見やすくなると実感しました。」

先生

「その気づきはとても大切ですよ。 プログラミングでは計算結果が正しいだけでなく、ユーザーにどう見せるかも重要です。 NumberFormatterを使えば、その部分を簡単に、しかも安全に実装できます。」

生徒

「文字列から数値に戻すときに、if letで安全に処理する理由もよく分かりました。 ユーザー入力をそのまま信用しないという考え方は、他の場面でも使えそうですね。」

先生

「その通りです。 Swiftの基本文法と一緒に、こうした考え方を身につけていけば、 実用的なiOSアプリやSwiftUIアプリを自信を持って作れるようになりますよ。」

生徒

「これからは金額表示や数値表示を見るたびに、裏側でNumberFormatterが動いているのを意識してみます。 もっとSwiftの基礎を学びたくなりました!」

カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinの関数型を整理するパッケージ・ファイル構造の例を初心者向けにやさしく解説!
New2
Swift
Swiftデータ型まとめ|String・Int・Bool・Arrayの基本を初心者向けに解説
New3
Kotlin
KotlinでGraphQL APIを呼び出す方法を解説!初心者にもわかるAPI連携の基本
New4
Swift
Swiftのコメントアウト方法とコーディング規約を完全解説!初心者向けにわかりやすく解説
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.2
Java&Spring記事人気No2
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.3
Java&Spring記事人気No3
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.4
Java&Spring記事人気No4
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
No.5
Java&Spring記事人気No5
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.6
Java&Spring記事人気No6
Swift
Swiftで数値と文字列を相互変換!NumberFormatterで桁区切りや通貨表示をわかりやすく解説
No.7
Java&Spring記事人気No7
Swift
Swiftで0埋め・ゼロパディングを徹底解説!printf互換のformat活用法
No.8
Java&Spring記事人気No8
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応