class ActiveSupport::NumberHelper::NumberToRoundedConverter
def convert
def convert helper = RoundingHelper.new(options) rounded_number = helper.round(number) if precision = options[:precision] if options[:significant] && precision > 0 digits = helper.digit_count(rounded_number) precision -= digits precision = 0 if precision < 0 # don't let it be negative end formatted_string = if rounded_number.finite? s = rounded_number.to_s("F") a, b = s.split(".", 2) if precision != 0 b << "0" * precision a << "." a << b[0, precision] end a else # Infinity/NaN "%f" % rounded_number end else formatted_string = rounded_number end delimited_number = NumberToDelimitedConverter.convert(formatted_string, options) format_number(delimited_number) end