View Source Cldr.Number.Formatter.Currency (Cldr Numbers v2.31.3)

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.