On Dec 5, 2007 5:22 PM, hemant <gethemant / gmail.com> wrote:
> On Dec 5, 2007 5:00 PM, Ivo Dancet <caifara.subscribe / gmail.com> wrote:
> > Hi
> >
> > I thought, why search for two hours being totally frustrated if I can
> > just ask...
> >
> > why does this happen:
> >
> >  >> 73.07-63.00
> > => 10.07 # ok, normal!
> >  >> 73.07-64.00
> > => 9.06999999999999 # why oh why?
>
> Thats folly of floats, you can't do much apart from :
>
> sprintf("%.2f",(73.07-64.00)).to_f
>

generally, I add a method to Float class like this:

class Float
  def r2p places
    sprintf("%.#{places}f",self).to_f
  end
end