- Home ›
- Ruby入門 ›
- 数値(Numeric)クラス
浮動小数点数を整数へ変換する
浮動小数点数を整数へ変換することができます。どのように変換するかでいくつかのメソッドが用意されています。ここでは Ruby で浮動小数点数を整数へ変換する方法を解説します。
(Last modified: )
小数点以下を切り捨てて整数に変換する
最初に小数点以下を切り捨てて整数に変換する方法です。 Float
クラスで用意されている to_i
メソッドを使います。
to_i
浮動小数点数の小数点以下を切り捨てて整数に変換します。実際には次のように使用します。
puts(4.23.to_i) # 4 puts(4.67.to_i) # 4 puts(-4.23.to_i) # -4 puts(-4.67.to_i) # -4
また to_i
メソッドと同じ利用方法として Float
クラスには truncate
メソッドが用意されています。
truncate(ndigits = 0)
引数に 0 を指定するか省略した場合は to_i
メソッドを使用した場合と同じです。
浮動小数点数の小数点以下を切り捨てて整数に変換します。実際には次のように使用します。
puts(4.23.truncate) # 4 puts(4.67.truncate) # 4 puts(-4.23.truncate) # -4 puts(-4.67.truncate) # -4
小数点以下を四捨五入して整数に変換する
小数点以下を四捨五入して整数に変換する方法です。 Float
クラスで用意されている round
メソッドを使います。
round(ndigits = 0)
round
メソッドで引数に 0 を指定するか省略した場合、自身ともっとも近い整数に変換します。中央値の 0.5 は 1 へ -0.5 は -1 へ変換されます。実際には次のように使用します。
puts(4.23.round) # 4 puts(4.5.round) # 5 puts(4.67.round) # 5 puts(-4.23.round) # -4 puts(-4.5.round) # -5 puts(-4.67.round) # -5
等しいかより大きな整数の中で最小の整数に変換する
浮動小数点数を等しいかより大きな整数の中で最小の整数に変換する方法です。 Float
クラスで用意されている ceil
メソッドを使います。
ceil(ndigits = 0)
ceil
メソッドで引数に 0 を指定するか省略した場合、自身と等しいかより大きな整数の中で最小の整数に変換します。実際には次のように使用します。
puts(4.23.ceil) # 5 puts(4.67.ceil) # 5 puts(-4.23.ceil) # -4 puts(-4.67.ceil) # -4
等しいかより小さな整数の中で最大の整数に変換する
浮動小数点数を等しいかより小さな整数の中で最大の整数に変換する方法です。 Float
クラスで用意されている floor
メソッドを使います。
floor(ndigits = 0)
floor
メソッドで引数に 0 を指定するか省略した場合、自身と等しいかより小さな整数の中で最大の整数に変換します。実際には次のように使用します。
puts(4.23.floor) # 4 puts(4.67.floor) # 4 puts(-4.23.floor) # -5 puts(-4.67.floor) # -5
では簡単なサンプルで試してみます。
# encoding: UTF-8 num1 = 1.2 num2 = 1.8 num3 = -1.3 num4 = -1.7 print(num1, ".truncate = ", num1.truncate, "\n") print(num2, ".truncate = ", num2.truncate, "\n") print(num3, ".truncate = ", num3.truncate, "\n") print(num4, ".truncate = ", num4.truncate, "\n") 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")
実行結果は次のようになります。
-- --
Ruby で浮動小数点数を整数へ変換する方法を解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。