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

Functions to validate and transform
options that guide number formatting

# `currency_symbol`

```elixir
@type currency_symbol() :: :standard | :iso | :narrow | :symbol | :none
```

# `fixed_format`

```elixir
@type fixed_format() :: :standard | :currency | :accounting | :short | :long
```

# `format`

```elixir
@type format() :: binary() | fixed_format()
```

# `gender`

```elixir
@type gender() ::
  nil
  | :plural
  | :neuter
  | :masculine
  | :feminine
  | :common
  | :personal
  | :inanimate
  | :animate
```

# `grammatical_case`

```elixir
@type grammatical_case() ::
  nil
  | :vocative
  | :translative
  | :terminative
  | :superessive
  | :sublative
  | :sociative
  | :prepositional
  | :partitive
  | :oblique
  | :nominative
  | :localtivecopulative
  | :locative
  | :instrumental
  | :inessive
  | :illative
  | :genitive
  | :ergative
  | :elative
  | :delative
  | :dative
  | :comitative
  | :causal
  | :allative
  | :adessive
  | :accusative
  | :ablative
  | :abessive
```

# `separators`

```elixir
@type separators() :: :standard | :us
```

# `short_format_style`

```elixir
@type short_format_style() ::
  :currency_short
  | :currency_long
  | :currency_long_with_symbol
  | :decimal_short
  | :decimal_long
```

# `t`

```elixir
@type t() :: %Cldr.Number.Format.Options{
  currency: Cldr.Currency.t() | :from_locale,
  currency_digits: pos_integer(),
  currency_format: :currency | :accounting,
  currency_spacing: map(),
  currency_symbol: term(),
  format: format(),
  fractional_digits: pos_integer(),
  gender: gender(),
  grammatical_case: grammatical_case(),
  locale: Cldr.LanguageTag.t(),
  maximum_integer_digits: pos_integer(),
  minimum_grouping_digits: pos_integer(),
  number_system: Cldr.Number.System.system_name(),
  pattern: String.t(),
  round_nearest: pos_integer(),
  rounding_mode: Decimal.rounding(),
  separators: separators(),
  symbols: Cldr.Number.Symbol.t(),
  wrapper: (String.t(), atom() -&gt; String.t())
}
```

# `standard_format`

# `valid_grammatical_case`

Returns the list of valid grammatical cases.

# `valid_grammatical_gender`

Returns the list of valid grammatical genders.

# `validate_options`

```elixir
@spec validate_options(Cldr.Math.number_or_decimal(), Cldr.backend(), [
  {atom(), term()}
]) ::
  {:ok, t()} | {:error, {module(), String.t()}}
```

# `validate_ratio_options`

---

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