Sha256: 88e24cb791920a725ce171ceb0c9a2d36df51c23da8f782848c96b5d3747dfba
Contents?: true
Size: 650 Bytes
Versions: 26
Compression:
Stored size: 650 Bytes
Contents
if Integer.instance_method(:round).arity.zero? require 'backports/tools' class Integer def round_with_digits(ndigits=0) ndigits = Backports::coerce_to_int(ndigits) case when ndigits.zero? self when ndigits > 0 raise RangeError if ndigits >= 1<<31 Float(self) else pow = 10 ** (-ndigits) return 0 if pow.is_a?(Float) # when ndigits hugely negative remain = self % pow comp = self < 0 ? :<= : :< remain -= pow unless remain.send(comp, pow / 2) self - remain end end Backports.alias_method_chain self, :round, :digits end end
Version data entries
26 entries across 26 versions & 2 rubygems