Locale-sensitive number formatting, modelled on
Intl.NumberFormat.
Formats numbers as decimals, currencies, percentages, or units according to locale conventions.
Delegates to Localize.Number and Localize.Unit for the
underlying formatting.
Summary
Functions
Formats a number according to locale conventions.
Formats a number, raising on error.
Formats a range of numbers according to locale conventions.
Formats a range of numbers, raising on error.
Functions
Formats a number according to locale conventions.
Arguments
numberis an integer, float, orDecimal.optionsis a keyword list of options.
Options
:localeis a locale identifier string or atom. The default is the current process locale.:styleis:decimal,:currency,:percent, or:unit. The default is:decimal.:currencyis a currency code atom (for example,:USD,:EUR). Required when:styleis:currency.:unitis a unit identifier string (for example,"kilometer","liter"). Required when:styleis:unit.:unit_displayis:long,:short, or:narrow. Controls how the unit is displayed. The default is:short.:notationis:standardor:compact. When:compact, uses abbreviated number formatting (for example, "1.2K"). The default is:standard.:compact_displayis:shortor:long. Only used when:notationis:compact. The default is:short.:minimum_fraction_digitsis a non-negative integer.:maximum_fraction_digitsis a non-negative integer.:rounding_modeis one of:down,:half_up,:half_even,:ceiling,:floor,:half_down,:up.
Returns
{:ok, formatted_string}on success.{:error, reason}if options or input are invalid.
Examples
iex> Intl.NumberFormat.format(1234.5, locale: :en)
{:ok, "1,234.5"}
iex> Intl.NumberFormat.format(0.56, locale: :en, style: :percent)
{:ok, "56%"}
iex> Intl.NumberFormat.format(1234.5, locale: :en, style: :currency, currency: :USD)
{:ok, "$1,234.50"}
Formats a number, raising on error.
Same as format/2 but returns the string directly or raises.
Arguments
numberis an integer, float, orDecimal.optionsis a keyword list of options.
Returns
- A formatted string.
Examples
iex> Intl.NumberFormat.format!(1234.5, locale: :en)
"1,234.5"
Formats a range of numbers according to locale conventions.
Arguments
number_startis the start of the range.number_endis the end of the range.optionsis a keyword list of options. Accepts the same options asformat/2(except:stylemust be:decimalor omitted).
Returns
{:ok, formatted_string}on success.{:error, reason}if options or input are invalid.
Examples
iex> Intl.NumberFormat.format_range(100, 200, locale: :en)
{:ok, "100–200"}
Formats a range of numbers, raising on error.
Same as format_range/3 but returns the string directly or raises.
Arguments
number_startis the start of the range.number_endis the end of the range.optionsis a keyword list of options.
Returns
- A formatted string.
Examples
iex> Intl.NumberFormat.format_range!(100, 200, locale: :en)
"100–200"