Actions
Bug #12414
closedFloatDomainError in infinite Range#include? for certain BigDecimals
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
Backport:
Description
What I did¶
require 'bigdecimal'
r = 0.04...(Float::INFINITY)
n = BigDecimal.new('0.13E0')
r.include?(n.to_f)
r.include?(n)
What I expected¶
true
true
What happens instead¶
true
FloatDomainError: Infinity
from (irb):19:in `to_r'
from (irb):19:in `<=>'
from (irb):19:in `include?'
from (irb):19
from /Users/msiegel/.rvm/rubies/ruby-2.2.3/bin/irb:15:in `<main>'
Workaround¶
To workaround, I am calling #to_f
on the BigDecimal
before submitting it to the Range#include?
Note that this exception only occurs for certain BigDecimal values, not for all.
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
- Status changed from Open to Closed
Applied in changeset r55123.
bigdecimal.c: fix FloatDomainError
- ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): consider
non-finite float values not to raise FloatDomainError.
[ruby-core:75682] [Bug #12414]
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
- Description updated (diff)
- Backport changed from 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN to 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED
Updated by nobu (Nobuyoshi Nakada) over 8 years ago
- Subject changed from FloatDomainError in infinite Range#inclyde? for certain BigDecimals to FloatDomainError in infinite Range#include? for certain BigDecimals
Updated by usa (Usaku NAKAMURA) over 8 years ago
- Related to Bug #12417: warning: "isfinite" redefined when compiling bigdecimal.c on cygwin added
Updated by usa (Usaku NAKAMURA) over 8 years ago
- Backport changed from 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED to 2.1: REQUIRED, 2.2: DONE, 2.3: REQUIRED
ruby_2_2 r55354 merged revision(s) 55123,55129,55130,55133,55136.
Updated by nagachika (Tomoyuki Chikanaga) over 8 years ago
- Backport changed from 2.1: REQUIRED, 2.2: DONE, 2.3: REQUIRED to 2.1: REQUIRED, 2.2: DONE, 2.3: DONE
ruby_2_3 r55445 merged revision(s) 55123,55129,55130,55133,55136.
Updated by mrkn (Kenta Murata) about 8 years ago
- Is duplicate of Bug #10109: BigDecimal fail to compare to Float::INFINITY added
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0