Ruby フォーマット文字列について

2.345などの少数が出た場合文字の表示を整えたい場合がある。 その場合に利用するのが、フォーマット文字列 例えば 1.2を 1.200と表示させたい場合以下のように記載する。

Rubyの場合

sprintf('%.3f', 1.2)

#=> "1.200" と表示されます。

このsprintfというメソッドで整えます。 また%は指示子といって.3は小数点以下3桁まで表示しましょうねということ。
第一引数の小数点の右の数字は小数点以下は3桁まで表示しましょうねという意味。 0.3ではないので注意。
そして、第二引数の値 1.2 の表示を整えています。

rubyにはフォーマット文字列 % というのもあります。 基本形はこれ

str % 引数

となっています。
左辺の文字列strを% の右辺の引数の値を表現します。


'%.3f' % 1.2
#=> "1.200"と表示されます。

この文法は

%fはfloatの略、つまり少数ですね。
%dだと10進数の普通の数字となります。
%oだと、8進数で出力となります。
%s だと文字列を出力します。
%gは実数を最適な形で出力します。
では

'%8.3f' %1.2

の8は何かと言うと[全体の文字の幅]です。 指定しなくてもいいし、指定してもいい。 桁数の前に0詰めするとわかりやすいです。

'%08.3f' % 1.2

これは  
0001.200 と表示されます。

7という数字を007と表示したい場合を考えてみましょう。前に0をつけるのですね。 まず7は10進数の数字よって d を選択。 こうなります。

num = 7 
"%03d" % num  

#=> 003 と表示
numという変数を整えて表示してくれます。フォーマットは %03d です。
#文字列を10進数3桁、ただし前には0をつけて表示してねという意味です。222とか3桁の数字の場合前に0は付きません。

Swiftの場合

print(String(format: "%.3f", 1.2)

#=>1.200と表示される。

String型に型変換するときに formatで整えるのですね。