整数や浮動小数点数のオブジェクトを作成する

数値のクラスとしては Integer クラスと Float クラスが用意されています。 Integer クラスは整数を、 Float クラスは浮動小数点数を扱う場合に使います。ただこれらのクラスから直接オブジェクトを作成することはできません。ここでは Ruby で整数や浮動小数点数のオブジェクトを作成する方法について解説します。

リテラルとしての数値の使い方にはついては「数値と四則演算」を参照して下さい。

(Last modified: )

整数や浮動小数点数のオブジェクトを作成する

整数や浮動小数点数を直接記述する場合は次のように記述します。

n = 10
f = 8.43

整数のオブジェクトを作成するには Kernel モジュールの Integer メソッドを使って次のように記述します。

n = Integer(arg)

引数を整数に変換した結果を返します。引数が数値の場合は整数に変換します。文字列の場合も変換できる場合は変換します。

浮動小数点数のオブジェクトを作成するには Kernel モジュールの Float メソッドを使って次のように記述します。

Float モジュールを使って浮動小数点数のオブジェクトを作成するには次のように記述します。

f = Integer(arg)

引数を浮動小数点数に変換した結果を返します。引数が数値の場合は浮動小数点数に変換します。文字列の場合も変換できる場合は変換します。

数値のオブジェクトの同一について

例えば文字列の場合、同じ値であっても異なるオブジェクトになります。次の例を見て下さい。

s1 = "abc"
s2 = "abc"

puts(s1.object_id)
puts(s2.object_id)

作成したオブジェクトの ID を出力してみると、同じ文字列であっても異なる ID が表示されて別々のオブジェクトが作成されているのが分かります。

それに対して整数や浮動小数点数の場合、同じ値の場合はすべて同じオブジェクトになります。次の例を見て下さい。

n1 = 24
n2 = 24
n3 = Integer(24)

puts(n1.object_id)
puts(n2.object_id)
puts(n3.object_id)

作成したオブジェクトの ID を出力してみると、同じ数値の場合は同じ ID が表示されて同じオブジェクトであることが分かります。このように整数や浮動小数点数のオブジェクトは、値が同じ場合はすべて同じオブジェクトが使用されます。

サンプルコード

では簡単なサンプルで試してみます。

# encoding: UTF-8

i = Integer(12)
f = Float(12)

puts(i)
puts(f)

実行結果は次のようになります。

Integerクラス及びFloatクラスのオブジェクトを作成

-- --

Ruby で整数や浮動小数点数のオブジェクトを作成する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。