From: piir@... (Todd Gardner) Date: 2004-06-27T23:58:00+09:00 Subject: Re: rounding to n decimal digits David Garamond wrote in message news:<40DE9C9F.3030204@zara.6.isreserved.com>... > I often do this: > > class Float > def round_n(n=0) > raise FloatDomainError unless self.finite? > raise ArgumentError unless n.class == Fixnum && n >= 0 > sprintf("%.#{n}f", self).to_f > end > > def ceil_n(n=0) > raise FloatDomainError unless self.finite? > raise ArgumentError unless n.class == Fixnum && n >= 0 > (self*10**n).ceil.to_f / 10**n > end > > def floor_n(n=0) > raise FloatDomainError unless self.finite? > raise ArgumentError unless n.class == Fixnum && n >= 0 > (self*10**n).floor.to_f / 10**n > end > end > > However I can't help get the feeling that Ruby already has something > like this. Did I indeed miss it? And you can combine the lines... puts a=1.1568753256 puts digits=3 puts ((a).*10**digits).round.to_f/10**digits Todd