Actions
Bug #3529
closedBigDecimal.mode(BigDecimal::EXCEPTION_*) の初期値が0になっている
ruby -v:
ruby 1.9.3dev (2010-07-03 trunk 28532) [x86_64-darwin10.4.0]
Backport:
Description
=begin
BigDecimal.mode で設定可能な例外モードの値は true または false になっており、
これらの値以外を設定しようとするとエラーになります。
ところが、例外モードの初期値は 0 になっています。
$ ruby -rbigdecimal -ve 'p %w(NaN INFINITY UNDERFLOW ZERODIVIDE).map{|x| BigDecimal.mode(BigDecimal.const_get(:"EXCEPTION_#{x}")) }'
ruby 1.9.3dev (2010-07-03 trunk 28532) [x86_64-darwin10.4.0]
[0, 0, 0, 0]
このままでは以下のようなコードでエラーになる場合があるので、修正が必要です。
begin
last_mode = BigDecimal.mode(BigDecimal::EXCEPTION_INFINITY)
BigDecimal.mode(BigDecimal::EXCEPTION_INFINITY, false)
...
ensure
ここでエラーになる場合がある¶
BigDecimal.mode(BigDecimal::EXCEPTION_INFINITY, last_mode)
end
=end
Actions
Like0
Like0Like0