lib/polyfill/v2_4/float.rb in polyfill-0.6.0 vs lib/polyfill/v2_4/float.rb in polyfill-0.7.0
- old
+ new
@@ -1,9 +1,44 @@
-require_relative 'float/instance'
-
module Polyfill
module V2_4
module Float
- include Instance
+ def ceil(ndigits = 0)
+ ndigits = ndigits.to_int
+ return super() if ndigits == 0
+
+ if ndigits > 0
+ place = 10**ndigits
+ (self * place).ceil / place.to_f
+ else
+ place = 10**-ndigits
+ (self / place).ceil * place
+ end
+ end
+
+ def floor(ndigits = 0)
+ ndigits = ndigits.to_int
+ return super() if ndigits == 0
+
+ if ndigits > 0
+ place = 10**ndigits
+ (self * place).floor / place.to_f
+ else
+ place = 10**-ndigits
+ (self / place).floor * place
+ end
+ end
+
+ def truncate(ndigits = 0)
+ ndigits = ndigits.to_int
+ return super() if ndigits == 0
+
+ if ndigits > 0
+ place = 10**ndigits
+ (self * place).truncate / place.to_f
+ else
+ place = 10**-ndigits
+ (self / place).truncate * place
+ end
+ end
end
end
end