# `Cldr.Number.Formatter.Currency`
[🔗](https://github.com/elixir-cldr/cldr_numbers/blob/v2.38.1/lib/cldr/number/formatter/currency_formatter.ex#L1)

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.**

---

*Consult [api-reference.md](api-reference.md) for complete listing*
