
「Swiftで小数を2桁で表示したい!」
そんなときに登場するのが、文字列フォーマット指定子 %.2f です。
この記事ではSwift初心者の方にもわかるように%.2f の意味・使い方・具体例をわかりやすく紹介していきます!
%.2f ってなに?
%.2f は、「小数点以下を2桁まで表示して、それ以外は四捨五入してね」という意味の書き方です。
%:フォーマット指定子の開始.2:小数点以下の桁数(2桁)f:浮動小数点(float/double)の表示形式
つまり、%.2f は「floatやdoubleを小数第2位まで表示するためのフォーマット」です。
具体例①:数値を小数点以下2桁で表示する
商品の金額などを小数第2位まで綺麗に表示したいときの例です。
|
1 2 3 4 5 |
let price: Double = 123.45678 let formatted = String(format: "%.2f", price) print(formatted) // → 123.46 |
ここでは 123.45678 が四捨五入されて 123.46 と表示されています。
小数点第3位が「6」なので、2位を「5」→「6」に切り上げた形です。
具体例②:計算結果を見やすく表示する
割り算の結果などが長い小数になる場合に、2桁で見やすくする例です。
|
1 2 3 4 5 |
let result = 10.0 / 3.0 let formatted = String(format: "%.2f", result) print(formatted) // → 3.33 |
そのまま表示すると 3.333333... のようになってしまう割り算も、.2f を使えばスッキリします。
具体例③:通貨や体重・身長などの表示に使う
ユーザーに見せる体重や通貨なども、小数第2位まで表示すると見栄えが良くなります。
|
1 2 3 4 5 |
let weight = 52.678 let display = String(format: "%.2f kg", weight) print(display) // → 52.68 kg |
単位付きでも同じように書けるので、UIのテキスト表示にもよく使われます。
具体例④:小数第1位だけにしたいときは %.1f
桁数を変えたいときは .1f, .3f のように書き換えるだけです。
|
1 2 3 4 5 |
let value = 7.891 let oneDigit = String(format: "%.1f", value) print(oneDigit) // → 7.9 |
.1f なら小数第2位で四捨五入して第1位まで表示。
自由に調整できます。
具体例⑤:複数の値を同時にフォーマット
複数の数値を一気にフォーマットしたいときにも使えます。
|
1 2 3 4 5 6 |
let x = 1.234 let y = 5.6789 let output = String(format: "x: %.2f, y: %.1f", x, y) print(output) // → x: 1.23, y: 5.7 |
順番通りに指定子を並べて、それぞれの値に適用されます。
書き方のポイント:String(format:) で使う
%.2f は Swift 独自の文法ではなく、Objective-C(Swiftの前に使われていた言語)やC言語で使われていた数字の整形ルールです。
Swiftでも String(format:) を使うことで、この昔からあるフォーマット指定の書き方がそのまま使えます。
たとえば:
|
1 2 3 |
let price = 123.456 let result = String(format: "%.2f", price) |
このように書くことで、price を小数第2位まで丸めた文字列を作ることができます。
ここで重要なのは、この結果は数値ではなく、文字列(String型)になるという点です。
つまり:
123.456(Double型)を"123.46"(String型)に変換する
という処理になります。
数値としての計算が必要な場合はそのまま Double を使い、
画面に表示したり、テキストとして扱いたいときに使うのが String(format:) です。
まとめ
%.2fは「小数点以下2桁まで表示」の意味String(format:)と組み合わせて使う- 結果は String型になる(数値→文字列に変換される)
- 金額や割合、計算結果を見やすくするのに便利
- 桁数は
.1f,.3fなど自由に変更可能 - 複数の値にも同時に使える!
数字の見た目を整えるだけで、アプリのUIはグッと洗練されて見えます。
%.2f はそのための強力な道具。
ぜひ使いこなして、見やすくわかりやすい表示を目指しましょう!
