I think this is probably is a case of 0.0 is not really 0. After all, as 
much as I might wish it were, a float is not a real. What we really have 
is the case mentioned before, that is 0.0 is really 0 + eta, where eta 
is some very small number which represents a precision error. Earlier, I 
was thrown off by the 0.0/0.0 case, because that would really be (0 + 
eta)/(0 + eta'), and since eta and eta' have similar magnitude this 
value should be around 1, even though we can't know what the number is, 
it certainly in a number. I'm not sure why the IEEE chose to define this 
case as NaN, I think it must have been shorthand for "undefined".

As an interesting (to nerds ;-D) aside, there are several systems in 
which 1/0 is infinity, but they usually depend on fancy geometrical 
tricks, like making the reals occupy a circle or some more complicated 
form instead of a line. So that +infinity == -infinity. That way you can 
make the function f(x)=1/x be "well" defined everywhere. I don't like 
it, but, plenty of people do...
-- 
Posted via http://www.ruby-forum.com/.