On Nov 14, 2006, at 11:35 AM, S. Robert James wrote:

> I'd like to be able to do:
>
> x = 2.0
> assert x.integral?
>
> the :integer method returns false in this case.
> What would be a good way to write a different method to check?

Maybe it is just me, I don't have a lot of experience with floating  
point
issues, but this request has a bad smell to it.  Once you've decided to
model something with floating point values it seems a bit unusual to  
want
to know if any particular value happens to be the exact floating point
representation of an integer.   Isn't the entire notion of equality  
somewhat
ambiguous in the floating point world?  I thought this is usually  
handled by
asking if two values are within some delta (also represented as a  
floating
point value) of each other.

Any numerical computation folks out there who can share their wisdom?

Maybe the value should be modeled as an integer with different units
instead of floating point?  For example using units of pennies instead
of dollars to model monetary values.

Gary Wright