るりまサーチ

最速Rubyリファレンスマニュアル検索!
44件ヒット [1-44件を表示] (0.138秒)
トップページ > クエリ:-[x] > クエリ:Float[x] > クエリ:r[x] > クエリ:coerce[x]

別のキーワード

  1. _builtin float
  2. float to_d
  3. float rationalize
  4. json float
  5. fiddle type_float

ライブラリ

クラス

キーワード

検索結果

Numeric#coerce(other) -> [Numeric] (24355.0)

自身と other が同じクラスになるよう、自身か other を変換し [other, self] という配列にして返します。

...自身と 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)
r
eturn other, self.to_f...
...elsif other.kind_of?(Integer)
r
eturn Rational.new!(other, 1), self
else
super
end
end
//}

数値クラスの算術演算子は通常自分と演算できないクラスをオペランドとして受け
取ると coerce を使って自分とオペランドを変換した上で演算を...

Numeric (8272.0)

数値を表す抽象クラスです。Integer や Float などの数値クラス は Numeric のサブクラスとして実装されています。

...を表す抽象クラスです。Integer Float などの数値クラス
は Numeric のサブクラスとして実装されています。

演算や比較を行うメソッド(+, -, *, /, <=>)は Numeric のサブクラスで定義されま
す。Numeric で定義されているメソッドは...
...るメソッド
(+, -, *, /, %) を利用して定義されるものがほとんどです。
つまり Numeric で定義されているメソッドは、Numeric のサブクラスとして新たに数値クラスを定義した時に、
演算メソッド(+, -, *, /, %, <=>, coerce)だけを定義...
...されています。

+@, -@ は単項演算子 +, - を表しメソッド定義などではこの記法を利用します。

効率のため Numeric のメソッドと同じメソッドがサブクラスで再定義されている場合があります。

Numeric#coerce メソッドを使うこ...

Ruby用語集 (6244.0)

Ruby用語集 A B C D E F G I J M N O R S Y

...Ruby用語集
A B C D E F G I J M N O R S Y

a ka sa ta na ha ma ya ra wa

=== 記号・数字
: %記法
: % notation
「%」記号で始まる多種多様なリテラル記法の総称。

参照:d:spec/literal#percent

: 0 オリジン
: zero-ba...
...er 自体も gem として配布されているが、Ruby 2.6 で標準添付
ライブラリーに追加された。

===[a:C] C

: Coerce
異なるクラスの値同士の演算を効率よく実装するための手法の一つ。

例えば新しい数値クラス N を定義し、Integer...
...ンスタンスであった。Integer はこれらをまとめる
抽象クラスだった。
R
uby 2.4 でこれらが Integer に統合され、Fixnum と Bignum は Integer
単なるエイリアスとなった。

: flonum
CRuby において、Float が表す浮動小数点数のうち...

bigdecimal (132.0)

bigdecimal は浮動小数点数演算ライブラリです。 任意の精度で 10 進表現された浮動小数点数を扱えます。

...
任意の精度で 10 進表現された浮動小数点数を扱えます。

//emlist[][ruby]{
r
equire 'bigdecimal'
a = BigDecimal("0.123456789123456789")
b = BigDecimal("123456.78912345678", 40)
print a + b # => 0.123456912580245903456789e6
//}

一般的な 10 進数の計算でも有用で...
...print sum # => 0.9999999999999062
//}

//emlist[例2: 0.0001 を 10000 回足す場合。(BigDecimal)][ruby]{
r
equire 'bigdecimal'

sum = BigDecimal("0")
for i in (1..10000)
sum = sum + BigDecimal("0.0001")
end
print sum # => 0.1e1
//}

//emlist[例3: 1.2 - 1.0 と 0.2 との比較][ruby]{
r
equire...
...すことがあります。

//emlist[][ruby]{
r
equire "bigdecimal"
BigDecimal("0.0") == BigDecimal("-0.0") # => true

1 / BigDecimal("0.0") # => Infinity
1 / BigDecimal("-0.0") # => -Infinity
//}


=== 他の数値オブジェクトとの変換 (coerce)

BigDecimal オブジェクトが算術...