module ActiveSupport::NumberHelper

def number_to_rounded(number, options = {})

# => "1.111,23"
number_to_rounded(1111.2345, precision: 2, separator: ',', delimiter: '.')
number_to_rounded(389.32314, precision: 4, significant: true) # => "389.3"

# => "13"
number_to_rounded(13, precision: 5, significant: true, strip_insignificant_zeros: true)

number_to_rounded(111.234, locale: :fr) # => "111,234"
number_to_rounded(13, precision: nil) # => "13"
number_to_rounded(13, precision: 5, significant: true) # => "13.000"
number_to_rounded(111.2345, precision: 1, significant: true) # => "100"
number_to_rounded(111.2345, significant: true) # => "111"
number_to_rounded(389.32314, precision: 0) # => "389"
number_to_rounded(13, precision: 5) # => "13.00000"
number_to_rounded(111.2345, precision: 2) # => "111.23"
number_to_rounded(111.2345) # => "111.235"

==== Examples

+false+).
insignificant zeros after the decimal separator (defaults to
* :strip_insignificant_zeros - If +true+ removes
to "").
* :delimiter - Sets the thousands delimiter (defaults
fractional and integer digits (defaults to ".").
* :separator - Sets the separator between the
digits (defaults to +false+).
of significant_digits. If +false+, the number of fractional
* :significant - If +true+, precision will be the number
(defaults to 3). Keeps the number's precision if +nil+.
* :precision - Sets the precision of the number
(defaults to current locale).
* :locale - Sets the locale to be used for formatting

==== Options

You can customize the format in the +options+ hash.
+:significant+ is +false+, and 5 if +:significant+ is +true+).
:precision (e.g., 112.32 has a precision of 2 if
Formats a +number+ with the specified level of
def number_to_rounded(number, options = {})
  NumberToRoundedConverter.convert(number, options)
end