Class: ActiveSupport::NumberHelper::NumberToRoundedConverter
- Inherits:
-
NumberConverter
- Object
- NumberConverter
- ActiveSupport::NumberHelper::NumberToRoundedConverter
- Defined in:
- lib/active_support/number_helper/number_to_rounded_converter.rb
Overview
:nodoc:
Constant Summary
Constants inherited from NumberConverter
ActiveSupport::NumberHelper::NumberConverter::DEFAULTS
Instance Attribute Summary
Attributes inherited from NumberConverter
Instance Method Summary collapse
Methods inherited from NumberConverter
convert, #execute, #initialize
Constructor Details
This class inherits a constructor from ActiveSupport::NumberHelper::NumberConverter
Instance Method Details
#convert ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/active_support/number_helper/number_to_rounded_converter.rb', line 9 def convert helper = RoundingHelper.new() rounded_number = helper.round(number) if precision = [:precision] if [: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 BigDecimal === rounded_number && rounded_number.finite? s = rounded_number.to_s("F") s << "0".freeze * precision a, b = s.split(".".freeze, 2) a << ".".freeze a << b[0, precision] else "%00.#{precision}f" % rounded_number end else formatted_string = rounded_number end delimited_number = NumberToDelimitedConverter.convert(formatted_string, ) format_number(delimited_number) end |