44件ヒット
[1-44件を表示]
(0.013秒)
種類
- クラス (11)
- ライブラリ (11)
- 文書 (11)
- インスタンスメソッド (11)
ライブラリ
- ビルトイン (22)
クラス
- Numeric (11)
キーワード
- Numeric (11)
- Ruby用語集 (11)
- bigdecimal (11)
検索結果
-
Numeric
# coerce(other) -> [Numeric] (18155.0) -
自身と other が同じクラスになるよう、自身か other を変換し [other, self] という配列にして返します。
...。
デフォルトでは self と other を Float に変換して [other, self] という配列にして返します。
Numeric のサブクラスは、このメソッドを適切に再定義しなければなりません。
以下は Rational の coerce のソースです。other が自身の知......あった場合、
super を呼んでいることに注意して下さい。
//emlist[例][ruby]{
# lib/rational.rb より
def coerce(other)
if other.kind_of?(Float)
return other, self.to_f
elsif other.kind_of?(Integer)
return Rational.new!(other, 1), self
else
super
end
end
/......引数の coerce により自身を変換してから
+ 演算子を呼んでいます。
//emlist[例][ruby]{
# lib/rational.rb より
def + (a)
if a.kind_of?(Rational)
# 長いので省略
elsif a.kind_of?(Integer)
# 長いので省略
elsif a.kind_of?(Float)
Float(self) + a... -
Numeric (100.0)
-
数値を表す抽象クラスです。Integer や Float などの数値クラス は Numeric のサブクラスとして実装されています。
...数値を表す抽象クラスです。Integer や Float などの数値クラス
は Numeric のサブクラスとして実装されています。
演算や比較を行うメソッド(+, -, *, /, <=>)は Numeric のサブクラスで定義されま
す。Numeric で定義されているメソッ......いるメソッドは、Numeric のサブクラスとして新たに数値クラスを定義した時に、
演算メソッド(+, -, *, /, %, <=>, coerce)だけを定義すれば、数値クラスのそのほかのメソッドが
適切に定義されることを意図して提供されています......す。
効率のため Numeric のメソッドと同じメソッドがサブクラスで再定義されている場合があります。
Numeric#coerce メソッドを使うことによって異なる数値クラス間で演算を行うこともできます。
=== 数値関連のメソッドを... -
Ruby用語集 (78.0)
-
Ruby用語集 A B C D E F G I J M N O R S Y
...e。
Bundler 自体も gem として配布されているが、Ruby 2.6 で標準添付
ライブラリーに追加された。
===[a:C] C
: Coerce
異なるクラスの値同士の演算を効率よく実装するための手法の一つ。
例えば新しい数値クラス N を定義......身を引数に
まず相手側の N#coerce を呼ぶ。N#coerce では self と引数を、既に加算が定義された
オブジェクトのペアに変換して返す。Integer 側ではそれらの加算を行う。
この方法では、N#coerce さえ適切に定義しておけば、Int......これらが Integer に統合され、Fixnum と Bignum は Integer の
単なるエイリアスとなった。
: flonum
CRuby において、Float が表す浮動小数点数のうち、即値として実装されているもの。
演算が高速で省メモリーという特長がある... -
bigdecimal (18.0)
-
bigdecimal は浮動小数点数演算ライブラリです。 任意の精度で 10 進表現された浮動小数点数を扱えます。
...0") # => true
1 / BigDecimal("0.0") # => Infinity
1 / BigDecimal("-0.0") # => -Infinity
//}
=== 他の数値オブジェクトとの変換 (coerce)
BigDecimal オブジェクトが算術演算子の左にあるときは、
BigDecimal オブジェクトが右にあるオブジェクトを
(......を区別します)。
ただし、mode メソッドで false を指定した場合は例外が発生します。
また、BigDecimalクラスは coerce(Ruby本参照)をサポートしています。
従って、BigDecimal オブジェクトが右にある場合も大抵は大丈夫です。
ただ......といった関数が使用できるようになります。
使用方法など、詳細は bigdecimal/math を参照して下さい。 その他、Float との相互変換などの
メソッドが bigdecimal/util でサポートされています。利用するには
//emlist[][ruby]{
require "big...