D
David Garamond
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?
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?