- Home ›
- Ruby入門 ›
- 数値(Numeric)クラス ›
- HERE
四捨五入などの方法で整数へ変換する
Floatクラスの数値を「to_i」メソッドを使ってIntegerクラスの数値に変換した場合、小数点以下は切り捨てられます。今回は他の変換方法を試してみます。
小数点以下を四捨五入して整数に変換する方法です。Numericクラスで用意されている「round」メソッドを使います。
round
「round」メソッドは四捨五入して整数に丸めます。「1.1」は「1」へ「1.7」は「2」へ「-1.2」は「-1」へ「-1.7」は「-2」へ変換されます。中央値の「0.5」は「1」へ「-0.5」は「-1」へ変換されます。
実際の使い方は次のようになります。
num = 10.3.round
この場合は変数「num」には10が格納されます。
次に小数点以下を大きい方の整数へ変換する方法です。Numericクラスで用意されている「ceil」メソッドを使います。
ceil
「ceil」メソッドは大きい方の整数に丸めます。「1.1」や「1.7」は「2」へ「-1.2」や「-1.7」は「-1」へ変換されます。
実際の使い方は次のようになります。
num = 10.3.ceil
この場合は変数「num」には11が格納されます。
次に小数点以下を小さい方の整数へ変換する方法です。Numericクラスで用意されている「floor」メソッドを使います。
floor
「floor」メソッドは小さい方の整数に丸めます。「1.1」や「1.7」は「1」へ「-1.2」や「-1.7」は「-2」へ変換されます。
実際の使い方は次のようになります。
num = 10.3.floor
この場合は変数「num」には10が格納されます。
サンプルプログラム
では簡単なサンプルで試してみます。
#! ruby -Ks num1 = 1.2 num2 = 1.8 num3 = -1.3 num4 = -1.7 print(num1, ".round = ", num1.round, "¥n") print(num2, ".round = ", num2.round, "¥n") print(num3, ".round = ", num3.round, "¥n") print(num4, ".round = ", num4.round, "¥n") print(num1, ".ceil = ", num1.ceil, "¥n") print(num2, ".ceil = ", num2.ceil, "¥n") print(num3, ".ceil = ", num3.ceil, "¥n") print(num4, ".ceil = ", num4.ceil, "¥n") print(num1, ".floor = ", num1.floor, "¥n") print(num2, ".floor = ", num2.floor, "¥n") print(num3, ".floor = ", num3.floor, "¥n") print(num4, ".floor = ", num4.floor, "¥n")
実行結果は次のようになります。
( Written by Tatsuo Ikura )