Skip to content

Number Filters

A couple of filters for formatting numbers are included.

Basic concepts

  • Locale: The formatting of numbers are based on the locale set on the template in Lime Admin. The locale affects a lot of things, such as the separator used for separating hundreds and thousands.

Formatting

  • All number format filters have locale as an optional parameter which will override the template locale set in Lime Admin. Examples below are from a template with the (default) locale set to Swedish (Sweden).

Number

Standard number formatter.

format_number(
    locale=default_locale,
    decimal_places=None
)

Options

  • locale: The locale used to format the number. Defaults to the template locale.
  • decimal_places: Formats to the given number of decimal place, rounds if the number is less than available decimals. Displays all decimals if None. Defaults to None.

Examples

Example with 12345678.011231:

{{ deal.totalvalue | format_number }}
12 345 678,011231

{{ deal.totalvalue | format_number(locale="en_US") }} (force US English)
12,345,678.011231

{{ deal.totalvalue | format_number(locale="da_DK") }} (force Danish)
12.345.678,011231

{{ deal.totalvalue | format_number(locale="da_DK", decimal_places=2) }} (force Danish, display 2 decimal places)
12.345.678,01

Example with 129.78:

{{ deal.totalvalue | format_number }}
129,78

{{ deal.totalvalue | format_number(decimal_places=1) }} (display 1 decimal place)
129,8

{{ deal.totalvalue | format_number(decimal_places=3) }} (display 3 decimal places)
129,780

Percent

Standard percent formatter.

format_percent(
    locale=default_locale
)

Options

  • locale: The locale used to format the number. Defaults to the template locale.

Examples

Example with .752:

{{ deal.probability | format_percent }}
75 %

{{ deal.probability | format_percent(locale="en_US") }} (force US English)
75%

Custom pattern

Format a number using a custom pattern.

format_number_pattern(
    pattern,
    locale=default_locale,
    strict_decimal_formatting=True
)

Options

  • pattern: A Locale Data Markup Language specification (LDML) pattern.
  • locale: The locale used to format the number. Defaults to the template locale.
  • strict_decimal_formatting: Should decimals be rounded and truncated to match the given pattern? If False, all decimals will be rendered regardless of the pattern. Defaults to True.

Examples

Example with 12345678.011231:

{{ deal.totalvalue | format_number_pattern('###,##0.##') }}
12 345 678,01

{{ deal.totalvalue | format_number_pattern('###,##0.##', locale="en_US") }} (force US English)
12,345,678.01

{{ deal.totalvalue | format_number_pattern('###,##0.##', locale="da_DK") }} (force Danish)
12.345.678,01

{{ deal.totalvalue | format_number_pattern('###,##0.##', locale="da_DK", strict_decimal_formatting=False) }} (force Danish, unrestrict decimals)
12.345.678,011231

# For the example, assume deal.totalvalue is 0.01015
{{ deal.totalvalue | format_number_pattern('##,##0.##%', locale="en_US") }} (force US English, render percent restrict to two decimals)
1.02%