Cldr.Number.Formatter.Currency (Cldr Numbers v2.17.0-rc.0) View Source

Number formatter for the :currency :long format.

This formatter implements formatting a currency in a long form. This is not the same as decimal formatting with a currency placeholder.

To explain the difference, look at the following examples:

iex> Cldr.Number.to_string 123, TestBackend.Cldr, format: :currency, currency: "USD"
{:ok, "$123.00"}

iex> Cldr.Number.to_string 123, TestBackend.Cldr, format: :long, currency: "USD"
{:ok, "123 US dollars"}

In the first example the format is defined by a decimal mask. In this example the format mask comes from:

iex> {:ok, formats} = Cldr.Number.Format.all_formats_for("en", TestBackend.Cldr)
...> formats.latn.currency
"¤#,##0.00"

In the second example we are using a format that combines the number with a language translation of the currency name. In this example the format comes from:

iex> {:ok, formats} = Cldr.Number.Format.all_formats_for("en", TestBackend.Cldr)
...> formats.latn.currency_long
%{one: [0, " ", 1], other: [0, " ", 1]}

Where "{0}" is replaced with the number formatted using the :standard decimal format and "{1} is replaced with locale-specific name of the currency adjusted for the locales plural rules."

This module is not part of the public API and is subject to change at any time.

Link to this section Summary

Link to this section Functions

Link to this function

to_string(number, atom, backend, options)

View Source