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