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