gets
でキーボードから何かを読み込んだ場合、
たとえ数字をいれてもそれは必ず「文字列」として読み込まれる。
数値として計算に利用したい場合は文字列を数値に変換する必要がある。
逆に、数値を文字列に戻すことが必要になることもある。各々の
変換をしてくれる メソッド を紹介する。
to_i
(to Integer)
数字が並んでいる文字列10進数と見なしてを整数の数値に変換する。
"123" → 123
to_f
(to Floating Point Number)
数字が並んでいる文字列10進数と見なしてを浮動小数点数値に変換する。
小数を表現できる数値のことを浮動小数点数(Floating Point
Number)という。to_f と次項で説明する printf
の %f は
Floating のfである。
数値を画面に出す場合は printf
を利用し、%f を指定する。
printf
の少し詳しい説明。
printf
(print with format)
最初の引数の文字列の中にある %X を、2個目以降の引数であたえた 値に置き換えて表示する。
printf "○×〜%X1〜△〜%X2
", X1, X2
のようにすると、最初の%X1
が
X1の値に置き換えられ、
次の%X2
が
X2の値に置き換えらる。
%X1
の部分に使えるのは以下のどれか。
%d
- (Decimal; 10進数)
対応する値を10進整数の文字列に置き換える
%x
- (heXa decimal; 16進数)
対応する値を16進整数の文字列に置き換える
%f
- (Floating point number)
対応する値を10進浮動小数点数の文字列に置き換える
%s
- (String)
対応する値を文字列に置き換える
%
とd, x, f, s
の間には置き換えたあと
の桁数を指定する数を入れることができる。たとえば、
printf "合計%5d円です。\n", price
とすると、price
の値が5桁に満たなくても5桁文確保し
て表示する。たとえば、price
が50だとしても、
合計 50円です。 ^^^^^
と表示される。小数(浮動小数点数)を表示する%f
では、
全体の桁数と、小数点以下の桁数を指定できる。
printf "答は%5.2fです。\n", answer
とすると、「全体で5桁、そのうち小数点以下2桁」で表示する。
たとえば、answser=2.5
なら、
答は 2.50です。 ^^^^^
と表示される。
桁数の指定に負の数値を与えると、「左詰め」して表示される。 たとえば、正の値で桁数指定すると
printf "%10s, %20s\n", "公益太郎", "コウエキタロウ"
とすると、
公益太郎, コウエキタロウ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
と右詰めで表示されるが、桁数に負の数を与えると
printf "%-10s, %-20s\n", "公益太郎", "コウエキタロウ"
とすると、
公益太郎 , コウエキタロウ ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^
と左詰めで置き換えられる。
printf
で数値を画面に表示するのではなく、文字列に変換して
別の変数に入れるようなときは、to_s
メソッドを利用する。
to_s
- (to String)
文字列に限らず全ての型の値を文字列に変換する。