From: Dave Thomas Date: 2004-03-06T12:17:58+09:00 Subject: Possible strangeness in Numeric To my surprise, Numeric defaults to implementing to_int by calling to_i. This means that, for example, (1.2).to_int => 1 I don't think this is correct, as a Float is not a representation of an Integer, and so can't really stand in where an integer would. But having Float respond to to_int by rounding itself down implies that Floats are usable as Integers. obj = IO.new(3.14159) That just doesn't seem right. Clearly Float needs to support to_i, but to have all the Numeric objects (including Float and Rational) support to_int is (I believe) a violation of the intention of the to_xxx methods. I suggest that the to_int implementation should be moved from Numeric to Integer. Cheers Dave