Numeric クラス
- 数値を扱う抽象クラスです.Ruby では,coerce メソッドを使うことによって,異なる数値クラス間で演算を行うことができます.演算や比較を行うメソッド( +,-,*,/,<=> など)は,サブクラスで定義されます.また,効率のため,Numeric のメソッドと同じメソッドがサブクラスで再定義されている場合があります.
-
- [インクルードモジュール]
- [メソッド]
[メソッド]
- + self
- self 自身を返します.
- - self
- self の符号を反転させたものを返します.
- self == other
- self と other の値が等しいときに true,等しくないときに false を返します.
- abs
- 絶対値を返します.
- ceil
- 大きい方の整数へ丸めます(天井).
- p (1.5).ceil # => 2
- p (-1.5).ceil # => -1
- coerce ( number )
- number の型を,自分と直接演算できる型に変換して,[number, self] という配列に格納して返します.数値クラスの算術演算子は,通常自分と演算できないクラスをオペランドとして受け取ると,coerce を使って自分とオペランドを変換した上で演算を行います.
- p 2.coerce(1.5) # => [1.5, 2.0]
- p 2.coerce("1.5") # => [1.5, 2.0]
- p 1.5.coerce(2) # => [2.0, 1.5]
- p 1.5.coerce("2") # => [2.0, 1.5]
- div ( other )
- self を other で割った商を返します.self のクラスにかかわらず,整数の商を返します.
- p 5.div(2.3) # => 2
- p -5.div(2.3) # => -3
- p 5.quo(2.3) # => 2.17391304347826
- p -5.quo(2.3) # => -2.17391304347826
- divmod ( other )
- self を other で割った商 q と余り r を,[q, r] という 2 要素の配列にして返します.なお,商と余りとは,「 q * other + r = self 」となるような数値です.
- p 5.divmod(2) # => [2, 1]
- p -5.divmod(2) # => [-3, 1]
- p 5.divmod(-2) # => [-3, -1]
- p -5.divmod(-2) # => [2, -1]
- floor
- 小さい方の整数に丸めます(床).
- p (1.5).floor # => 1
- p (-1.5).floor # => -2
- integer?
- 整数の時,真を返します.
- modulo ( other )
- self を other で割った余り r を返します.結果は,divmod と同じであり,r の符号は,other と同じになります.
- p 5.modulo(2) # => 1
- p -5.modulo(2) # => 1
- p 5.modulo(-2) # => -1
- p -5.modulo(-2) # => -1
- p 5.remainder(2) # => 1
- p -5.remainder(2) # => -1
- p 5.remainder(-2) # => 1
- p -5.remainder(-2) # => -1
- nonzero?
- ゼロの時 nil を返し,非ゼロの時 self を返します.
- quo ( other )
- self を other で割った商を返します.self のクラスにかかわらず,実数の商を返します.
- p 5.div(2.3) # => 2
- p -5.div(2.3) # => -3
- p 5.quo(2.3) # => 2.17391304347826
- p -5.quo(2.3) # => -2.17391304347826
- remainder ( other )
- self を other で割った余り r を返します.r の符号は,self と同じになります.
- p 5.modulo(2) # => 1
- p -5.modulo(2) # => 1
- p 5.modulo(-2) # => -1
- p -5.modulo(-2) # => -1
- p 5.remainder(2) # => 1
- p -5.remainder(2) # => -1
- p 5.remainder(-2) # => 1
- p -5.remainder(-2) # => -1
- round
- 四捨五入を行います.
- p (1.5).round # => 2
- p (1.1).round # => 1
- p (-1.1).round # => -1
- p (-1.5).round # => -2
- step ( limit, step ) { | n | ・・・ }
- self からはじめ step を足しながら,limit を越える前までブロックを繰り返します.step は負の数も指定できます(省略時は 1 ).また,limit や step には,Float なども指定できます.self を返します.
- sum = 0
- 1.step(10, 1) { |n| sum += n }
- p sum # => 55
- sum = 0
- 10.step(1, -1) { |n| sum += n }
- p sum # => 55
- to_i
- to_int
- truncate
- 小数点以下を切り捨てます.
- p (1.5).to_i # => 1
- p (-1.5).to_i # => -1
- zero?
- ゼロの時,真を返します.