# `Cldr.Number.Symbol`
[🔗](https://github.com/elixir-cldr/cldr_numbers/blob/v2.38.2/lib/cldr/number/symbol.ex#L1)

Functions to manage the symbol definitions for a locale and
number system.

# `t`

```elixir
@type t() :: %Cldr.Number.Symbol{
  decimal: String.t(),
  exponential: String.t(),
  group: String.t(),
  infinity: String.t(),
  list: String.t(),
  minus_sign: String.t(),
  nan: String.t(),
  per_mille: String.t(),
  percent_sign: String.t(),
  plus_sign: String.t(),
  superscripting_exponent: String.t(),
  time_separator: String.t()
}
```

# `all_decimal_symbols`

Returns a list of all decimal symbols defined
by the locales configured in the given backend as
a list.

## Arguments

* `backend` is any module that includes `use Cldr` and therefore
  is a `Cldr` backend module

# `all_decimal_symbols_class`

Returns a list of all decimal symbols defined
by the locales configured in the given backend as
a string.

This string can be used as a character class
when builing a regular expression.

## Arguments

* `backend` is any module that includes `use Cldr` and therefore
  is a `Cldr` backend module

# `all_grouping_symbols`

Returns a list of all grouping symbols defined
by the locales configured in the given backend as
a list.

## Arguments

* `backend` is any module that includes `use Cldr` and therefore
  is a `Cldr` backend module

# `all_grouping_symbols_class`

Returns a list of all grouping symbols defined
by the locales configured in the given backend as
a string.

This string can be used as a character class
when builing a regular expression.

## Arguments

* `backend` is any module that includes `use Cldr` and therefore
  is a `Cldr` backend module

# `number_symbols_for`

```elixir
@spec number_symbols_for(Cldr.Locale.locale_reference(), Cldr.backend()) ::
  {:ok, map()} | {:error, {module(), String.t()}}
```

Returns a map of `Cldr.Number.Symbol.t` structs of the number symbols for each
of the number systems of a locale.

## Arguments

* `locale` is any valid locale name returned by `Cldr.known_locale_names/1`
  or a `Cldr.LanguageTag` struct returned by `Cldr.Locale.new!/2`.  The
  default is `Cldr.get_locale/1`.

* `backend` is any module that includes `use Cldr` and therefore
  is a `Cldr` backend module

## Example:

    iex> Cldr.Number.Symbol.number_symbols_for("th", TestBackend.Cldr)
    {
      :ok,
      %{
        latn: %Cldr.Number.Symbol{
          decimal: %{standard: "."},
          exponential: "E",
          group: %{standard: ","},
          infinity: "∞",
          list: ";",
          minus_sign: "-",
          nan: "NaN",
          per_mille: "‰",
          percent_sign: "%",
          plus_sign: "+",
          superscripting_exponent: "×",
          time_separator: ":"
        },
        thai: %Cldr.Number.Symbol{
          decimal: %{standard: "."},
          exponential: "E",
          group: %{standard: ","},
          infinity: "∞",
          list: ";",
          minus_sign: "-",
          nan: "NaN",
          per_mille: "‰",
          percent_sign: "%",
          plus_sign: "+",
          superscripting_exponent: "×",
          time_separator: ":"
        }
      }
    }

# `number_symbols_for`

```elixir
@spec number_symbols_for(
  Cldr.Locale.locale_reference(),
  Cldr.Number.System.system_name(),
  Cldr.backend()
) :: {:ok, map()} | {:error, {Cldr.NoNumberSymbols, String.t()}}
```

Returns the number symbols for a specific locale and number system.

## Options

* `locale` is any valid locale name returned by `Cldr.known_locale_names/1`
  or a `Cldr.LanguageTag` struct returned by `Cldr.Locale.new!/2`.  The
  default is `Cldr.get_locale/1`.

* `number_system` is any number system name returned by
  `Cldr.known_number_systems/0` or a number system type
  returned by `Cldr.known_number_system_types/0`

* `backend` is any module that includes `use Cldr` and therefore
  is a `Cldr` backend module

## Example

    iex> Cldr.Number.Symbol.number_symbols_for("th", "thai", TestBackend.Cldr)
    {
      :ok,
      %Cldr.Number.Symbol{
        decimal: %{standard: "."},
        exponential: "E",
        group: %{standard: ","},
        infinity: "∞",
        list: ";",
        minus_sign: "-",
        nan: "NaN",
        per_mille: "‰",
        percent_sign: "%",
        plus_sign: "+",
        superscripting_exponent: "×",
        time_separator: ":"
      }
    }

---

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