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で整えるのですね。