I was playing around with the basic math functions, and I had some questions about the way Ruby handles operations with 0 and 0.0. first we have: $ ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [i486-linux] $ irb irb(main):001:0> 0/0 ZeroDivisionError: divided by 0 from (irb):1:in `/' from (irb):1 This is OK, it lets us know that we made a mistake somewhere, but when we try 0.0/0.0 we get: irb(main):002:0> 0.0/0.0 => NaN Mathematically, this is preferable to division error, but, maybe not from a programming standpoint? The question here is why should these two events generate different results? Now, if we try something like 4.0/0.0 we get, what I would consider, really weird behavior: irb(main):003:0> 4.0/0.0 => Infinity It is true that as x approaches 0 the limit of 1/x goes to infinity, but this is not the same as 1/0 = infinity. In this case why would infinity be preferable to the simpler result, NaN? At first I thought this might be a precision error, that is the parser is saying that 0.0 is not really 0, just very close. But, if that was the case then 0.0/0.0 would be 1 instead of NaN. Thanks! -- Posted via http://www.ruby-forum.com/.