Jon A. Lambert wrote: > Are there predefined constants somewhere for these floating point values? > > => ["EPSILON", "MIN_10_EXP", "MANT_DIG", "MAX", "MAX_EXP", "RADIX", "MIN", > "MIN_EXP", "ROUNDS", "MAX_10_EXP", "DIG"] > irb(main):011:0> Math.constants > => ["E", "PI"] > > irb(main):016:0> Float::MAX > => 1.79769313486232e+308 > irb(main):017:0> Float::MIN > => 2.2250738585072e-308 That's a vexing question 'cos you just gave a comprehensive list of them. Perhaps numeric.c is the answer you wanted ? > irb(main):009:0> (+1.0/0.0) > => Infinity > irb(main):012:0> (-1.0/0.0) > => -Infinity > > irb(main):021:0> x = Inifinity > NameError: uninitialized constant Inifinity ( In<i>finity spelling irrelevant ) Infinity is simulated all the way AFAICT - so, with your help, I think this shows that your definition usably sticks: negi = (-1.0/0.0) p negi # -Infinity Infinity = -negi p Infinity # Infinity p Infinity.class # Float p Infinity == (+1.0/0.0)-1 # true Without all that unnecessary fuss: Infinity = (+1.0/0.0) # set constant x = -Infinity-3 p x # -Infinity daz