この章ではNumericクラスについて説明します。
今まではクラスの作り方を説明してきましたが、Rubyにはあらかじめ定義されたクラスが存在します。
例えばNumericクラス、Stringクラス、Arrayクラス、Hashクラス、Timeクラス、Dateクラスなどがありますが、これらを一つずつ説明していきます。
初めにNumericクラスから説明します。
Numericクラスは以下のクラスに分類できます。
Numericクラスは今までたくさん使ってきました。
例えば「123」はFixnumクラスのオブジェクトで、「3.4」はFloatクラスのオブジェクトになります。
BignumクラスはFixnumクラスでは収まりきらないほど大きい数の時には自動的にBignumクラスに変換されます。
Rationalは分数の計算などに使われます。
使い方は
下の例では分数同士の計算を行っています。
Ruby1.8(バージョン)を使っている場合は
では例をみてみましょう。
では次のcomplexクラスの例をみてみましょう。
結果は「2+4i」です。
次はdivmodメソッドについて説明します。これはNumericクラスのメソッドです。
例をみてみましょう。
配列の0番目に答えが入り、1番目に余りが入ります。
余りはbの符号と同じ形式で表示されますので、bがマイナス表示ならばマイナスで表示されます。
結果は
次はmoduloメソッドについて説明します。
これはNumericクラスのメソッドです。
次はremainderメソッドについて説明します。
これはNumericクラスのメソッドです。
答えはaの符号と同じ形式で出力されます。
結果は上が「3」で下が「-3」になります。
次は四捨五入する方法や整数を浮動小数点数に変換する方法について説明します。
初めに整数値から浮動小数点数に変換する「to_fメソッド」について説明します。
このメソッドはIntegerクラスのメソッドです。
次は四捨五入するroundメソッドについて説明します。
このメソッドは小数点以下を四捨五入します。
次は元の数値を大きい方、小さい方に揃えるメソッドについて説明します。
次は乱数を発生させるrandメソッドについて説明します。
引数を与えた場合は0からその数値以内の乱数を返します。
答えはその時々で違う数値が出力されますが、例えば以下のように出力されます。
rand(7)であれば0から6までの乱数値を生成します。
rand(6)+1であれば1から6までの乱数値を生成します。
乱数を発生させるRandomモジュールのrandを使うことでも乱数を発生させることが出来ます。
モジュールの作成方法については説明しましたが、RandomモジュールはRubyで機能が定義されているモジュールです。
引数を与えた場合は0から指定数値以内の乱数を得られます。
例えば引数が12であれば0から11までです。
次はMathモジュールについて説明します。
Mathモジュールは三角関数などの数学関係の演算が簡単に出来るメソッドを提供しています。
定数を実行するには
結果は以下の通りです。