数値オブジェクト

広告

数値は「10」や「3.14」など整数や浮動小数点数などのことを言います。

文字列同様、数値もオブジェクトの1つです。文字列オブジェクトはStringクラスのオブジェクトでしたが、数値の場合は値によってクラスが異なります。

Numeric -+--Integer -+--Fixnum (整数)
         |           |
         |           +--Bignum (大きな整数)
         |
         +--Float (浮動小数点数)

数値オブジェクトは、数値が整数の場合はFixnumクラス、浮動小数点数の場合はFloatクラスのオブジェクトとなります。なおBignumクラスはFixnumクラスで収まりきらないほど大きな整数を使用する場合に使われるクラスです。整数が大きくなると自動的にBignumクラスのオブジェクトに変わるためあまり意識する必要はありません。

数値オブジェクトを作成するには単に数値を記述して下さい。

10
3.14

※FixnumクラスやFloatクラスに対しては「new」メソッドを使ってオブジェクトは作成できません。

整数や浮動小数点数の頭に「-」符号を付けることで負の値を持つ数値オブジェクトを作成できます。(実際には「-」は単項演算子と呼ばれる演算子です)。

-10
-3.14

整数の値は10進数の他に、2進数、8進数、16進数の形式で記述できます。

10進数  214
 2進数  0b11010110
 8進数  0326
16進数  0xD6

2進数は数値の先頭に「0b」を、8進数の場合は「0」を、16進数の場合は「0x」を付けます。

浮動小数点数の値は固定小数点形式を使った記述方法の他に指数表現も行えます。

2.5e5
2.5e-4

「2.5e5」とは「2.5×10の5乗」のことであり「250000.0」です。また「2.5e-4」とは「2.5×10の-4乗」のことであり「0.00025」です。

数値の出力

数値を出力するには文字列の場合と同じく「print」メソッドを使います。

print([arg1[, arg2, ...]])

引数に指定したオブジェクトが文字列でない場合は、そのオブジェクトに対して「to_s」メソッドが実行され文字列に変換されて出力されます。簡単に言えば文字列以外を引数に指定すると文字列に変換されてから出力されるということです。

実際には次のように使用します。

print(10)
print(3.14)

なお改行を行いたい場合、改行は文字列オブジェクトですので数値とは別に出力する必要があります。「print」メソッドはカンマで区切って複数のオブジェクトを一度に出力できますので、「"¥n"」と言う改行だけの文字列オブジェクトをカンマで区切って指定することで数値を出力した後に改行を行えます。

print(10, "¥n")

サンプルプログラム

では簡単なプログラムで確認して見ます。

test1-1.rb

#! ruby -Ku

print(10, "¥n")
print(3.14)

上記のプログラムを「test1-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。

数値オブジェクト

数値が出力されました。

オブジェクトのクラス名

文字列オブジェクトの場合と同じく数値オブジェクトのクラス名も調べてみます。

test1-2.rb

#! ruby -Ku

print(10.class(), "¥n")
print(3.14.class())

上記のプログラムを「test1-2.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。

文字列オブジェクト

「Fixnum」「Float」と表示されました。「10」と言う数値オブジェクトはFixnumクラスのオブジェクトであり、「3.14」と言う数値オブジェクトはFloatクラスのオブジェクトであることが分かります。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)