# `format_number`

The `format_number` filter formats a number:

    {{ '12.345'|format_number }}

You can pass attributes to tweak the output:

    {# 12.34 #}
    {{ '12.345'|format_number({rounding_mode: 'floor'}) }}

    {# 1000000.0000 #}
    {{ '1000000'|format_number({fraction_digit: 4}) }}

The list of supported options:

- `grouping_used`;

- `decimal_always_shown`;

- `max_integer_digit`;

- `min_integer_digit`;

- `integer_digit`;

- `max_fraction_digit`;

- `min_fraction_digit`;

- `fraction_digit`;

- `multiplier`;

- `grouping_size`;

- `rounding_mode`;

- `rounding_increment`;

- `format_width`;

- `padding_position`;

- `secondary_grouping_size`;

- `significant_digits_used`;

- `min_significant_digits_used`;

- `max_significant_digits_used`;

- `lenient_parse`.

Besides plain numbers, the filter can also format numbers in various styles:

    {# 1,234% #}
    {{ '12.345'|format_number(style='percent') }}

    {# twelve point three four five #}
    {{ '12.345'|format_number(style='spellout') }}

    {# 12 sec. #}
    {{ '12'|format_duration_number }}

The list of supported styles:

- `decimal`;

- `currency`;

- `percent`;

- `scientific`;

- `spellout`;

- `ordinal`;

- `duration`.

As a shortcut, you can use the `format_*_number` filters by replacing * with a style:

    {# 1,234% #}
    {{ '12.345'|format_percent_number }}

    {# twelve point three four five #}
    {{ '12.345'|format_spellout_number }}

You can pass attributes to tweak the output:

    {# 12.3% #}
    {{ '0.12345'|format_percent_number({rounding_mode: 'floor', fraction_digit: 1}) }}

By default, the filter uses the current locale. You can pass it explicitly:

    {# 12,345 #}
    {{ '12.345'|format_number(locale='fr') }}

Note

The `format_number` filter is part of the `IntlExtension` which is not installed by default. Install it first:

    $ composer require twig/intl-extra

Then, on Symfony projects, install the `twig/extra-bundle`:

    $ composer require twig/extra-bundle

Otherwise, add the extension explicitly on the Twig environment:

    use Twig\Extra\Intl\IntlExtension;

    $twig = new \Twig\Environment(...);
    $twig->addExtension(new IntlExtension());

## Arguments

- `locale`: The locale

- `attrs`: A map of attributes

- `style`: The style of the number output