From: Yui NARUSE Date: 2012-01-12T09:42:17+09:00 Subject: [ruby-core:42075] [ruby-trunk - Bug #5884] Float::NAN and 0.0/0.0 is represented differently when packed with 'g' 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/