
「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
はそのための強力な道具。
ぜひ使いこなして、見やすくわかりやすい表示を目指しましょう!