33件ヒット
[1-33件を表示]
(0.183秒)
種類
- クラス (11)
- ライブラリ (11)
- インスタンスメソッド (11)
ライブラリ
- ビルトイン (22)
クラス
- Numeric (11)
キーワード
- Numeric (11)
- bigdecimal (11)
検索結果
-
Numeric
# coerce(other) -> [Numeric] (18137.0) -
自身と other が同じクラスになるよう、自身か other を変換し [other, self] という配列にして返します。
...Rational の coerce のソースです。other が自身の知らない数値クラスであった場合、
super を呼んでいることに注意して下さい。
//emlist[例][ruby]{
# lib/rational.rb より
def coerce(other)
if other.kind_of?(Float)
return other, self.to_f
elsif oth......ドとして受け
取ると coerce を使って自分とオペランドを変換した上で演算を行います。
以下は Rational の + メソッドを一部省略したものです。
引数が自身の知らない数値クラスである場合、引数の coerce により自身を変換し......b/rational.rb より
def + (a)
if a.kind_of?(Rational)
# 長いので省略
elsif a.kind_of?(Integer)
# 長いので省略
elsif a.kind_of?(Float)
Float(self) + a
else
x, y = a.coerce(self)
x + y
end
end
//}
@param other オペランドを数値で指定します。... -
Numeric (24.0)
-
数値を表す抽象クラスです。Integer や Float などの数値クラス は Numeric のサブクラスとして実装されています。
...いるメソッドは、Numeric のサブクラスとして新たに数値クラスを定義した時に、
演算メソッド(+, -, *, /, %, <=>, coerce)だけを定義すれば、数値クラスのそのほかのメソッドが
適切に定義されることを意図して提供されています......す。
効率のため Numeric のメソッドと同じメソッドがサブクラスで再定義されている場合があります。
Numeric#coerce メソッドを使うことによって異なる数値クラス間で演算を行うこともできます。
=== 数値関連のメソッドを......- - - -
to_c | o - - - - - o
to_f | - - o o o o o
to_i | - o -......times | - o - - -
to_c | o - - - o
to_f | - o o o o
Numeric Integer Float Rational Complex
-... -
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 オブジェクトが右にある場合も大抵は大丈夫です。
ただ......s = s + BigDecimal(line)
end
puts s # => 0.3e0
end
File::open("digits.txt", "r") do |file|
s = 0
while line = file.gets
s = s + line.to_f
end
puts s # => 0.30000000000000004
end
//}
2 進数で計算すると誤差が入る可能性があります。
例えば 0.1 を2進で表...