module ActionView::Helpers::NumberHelper

def number_with_precision(number, options = {})

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

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

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

==== Examples

the argument is invalid.
* :raise - If true, raises +InvalidNumberError+ when
+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).
* :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_with_precision(number, options = {})
  delegate_number_helper_method(:number_to_rounded, number, options)
end