number_with_precision
number_with_precision(number, options = {})
public
Formats a number with the specified level of :precision (e.g., 112.32 has a precision of 2 if :significant is false, and 5 if :significant is true). You can customize the format in the options hash.
Options
-
:locale - Sets the locale to be used for formatting (defaults to current locale).
-
:precision - Sets the precision of the number (defaults to 3).
-
:significant - If true, precision will be the number of significant_digits. If false, the number of fractional digits (defaults to false).
-
:separator - Sets the separator between the fractional and integer digits (defaults to “.”).
-
:delimiter - Sets the thousands delimiter (defaults to “”).
-
:strip_insignificant_zeros - If true removes insignificant zeros after the decimal separator (defaults to false).
-
:raise - If true, raises InvalidNumberError when the argument is invalid.
Examples
number_with_precision(111.2345) # => 111.235 number_with_precision(111.2345, precision: 2) # => 111.23 number_with_precision(13, precision: 5) # => 13.00000 number_with_precision(389.32314, precision: 0) # => 389 number_with_precision(111.2345, significant: true) # => 111 number_with_precision(111.2345, precision: 1, significant: true) # => 100 number_with_precision(13, precision: 5, significant: true) # => 13.000 number_with_precision(111.234, locale: :fr) # => 111,234 number_with_precision(13, precision: 5, significant: true, strip_insignificant_zeros: true) # => 13 number_with_precision(389.32314, precision: 4, significant: true) # => 389.3 number_with_precision(1111.2345, precision: 2, separator: ',', delimiter: '.') # => 1.111,23
Separator default is not always "." but depends on locale
Locale en:
number_with_precision(111.2345) # => 111.235
Locale fr-FR:
number_with_precision(111.2345) # => 111,235
Same with delimiter.