Issue #5884 has been updated by Yui NARUSE.


Hiro Asari wrote:
> Besides it being status quo, what is the rationale behind not having Float::NAN and 0.0/0.0 act identically?

* I thought it should be quiet NaN
* no reason to choose "\xFF\xC0\x00\x00" there is many NaNs and platform dependent
* the result of 0.0/0.0 may differ on each call

> As Brian mentioned, until the introduction of Float::NAN, 0.0/0.0 acted as a means of getting IEEE 754 NaN. If the intent for Float::NAN is to act as *the* NaN, then it seems reasonable to expect these objects to behave the same way in all manners possible.

Show concreate use case.
I don't think pack/unpack is the use case.
See also the result of Float::NAN == Float::NAN.

Yukihiro Matsumoto wrote:
>  As far as I understand, the concept of "the NaN" itself is against the
>  definition of NaN in the IEEE 754 that defines NaN as set of floating
>  point values.  Correct me if I am wrong.

Yes, there is many NaNs.
----------------------------------------
Bug #5884: Float::NAN and 0.0/0.0 is represented differently when packed with 'g'
https://bugs.ruby-lang.org/issues/5884

Author: Hiro Asari
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 2.0.0dev (2011-12-31 trunk 34165) [x86_64-darwin11.2.0] 


$ ruby2.0 -e 'p [Float::NAN].pack("g")'
"\x7F\xC0\x00\x00"

$ ruby2.0 -e 'p [0.0/0.0].pack("g")'
"\xFF\xC0\x00\x00"

It would be nice to have Float::NAN and 0.0/0.0 behave identically in this regard.


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