カテゴリー
Ruby

Numericクラスについて知ろう

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

カテゴリー
PHP

数値に関する関数を知ろう

この章では数値に関する関数について説明します。
1round関数は第1引数で指定された値を第2引数で指定された桁数で丸めます(ほとんど四捨五入と同じですが、少しの誤差があります)。
丸める桁数を省略した場合は小数点以下を丸めます。
では例をみてみましょう。1 「丸める桁数」は
「2」が小数点第2位を四捨五入
「1」が小数点第1位を四捨五入
「-2」が10の位を四捨五入
「-1」が1の位を四捨五入
です。
結果は以下の通りです。 1 1ceil関数は指定された値を切り上げる関数です(小数点以下を切り上げて整数を取り出します)。元の数字よりも大きい数を戻り値として返します。
では例をみてみましょう。1 結果は以下の通りです。 
124と-123
1floor関数は指定された値を小数点以下で切り捨てる関数 (端数を切り捨てる)です。
元の数字よりも小さい数を返り値として返します。
では例をみてみましょう。1 結果は以下の通りです。
123と-124
1number_format関数は数字を1000の位ごとにカンマで区切った文字列を戻り値として返します。
小数点以下は四捨五入されます。
小数点以下の桁数、小数点を表す区切り文字、1000の位毎の区切り文字は省略できます。
では例をみてみましょう。1 $hは数値が丸められていますが、 小数点以下の桁数を指定していないため、小数点以下は表示されません。
結果は1です。
次の例をみてみましょう。1 2つ目の引数で小数点以下第何位まで表示するかを設定します。
この例の場合は2を指定しているので小数点第2位を四捨五入します。
結果は1です
次の例をみてみましょう。1 小数点を表す区切り文字に11000の位毎の区切り文字に1を指定しています。
つまり、「12,345.24」の1の部分が1に、1の部分が1に変更されます。
1のように引数が3つだけの指定はできませんので注意してください。
結果は以下の通りです。1 1mt_rand関数は乱数を生成します。
では例をみてみましょう。1 結果は
1974746906 
1494960676
など、毎回違う数字が表示されます。
返される値の最小値、返される値の最大値を指定しない場合には0以上の適当な値を返します。
次の例をみてみましょう。1 1から800までの数字がロードするごとに変わります。
指定の範囲内で値を取得したい場合は最小値と最大値を指定します。