Issue #13146 has been updated by Linus Sellberg.


Robert A. Heiler wrote:

> To me I guess the surprise is that NAN in itself should be unique?

NaN is defined by IEEE to fail equality tests with all floats (including itself), so it could be argued it is more unique than any other value. It could certainly be argued that as each NAN fail equality tests, indexing by NAN should never find anything in a hash. 


----------------------------------------
Bug #13146: Float::NANs in Hashes are confusing (more than usual). 
https://bugs.ruby-lang.org/issues/13146#change-62638

* Author: Linus Sellberg
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.3.1p112
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
`test = {Float::NAN => 1, -Float::NAN => 2}
=> {NaN=>1, NaN=>2}

test.values_at(Float::NAN, -Float::NAN)
=> [1, nil]`

I don't know what the correct behaviour ought to be, but it seems inconsistent to create a hash with two elements but not be able to extract both values.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>