Formats a number with specific min- and max-Fraction-Digits (localized).

Trailing "0"s after the fraction-separator are cut-off or can be replaced.

This function allows more fraction-control as the standard PHP / twig number_format(...) function.


Syntax

format_number( $number, int $minFracDigits=0, int $maxFracDigits=2, int $minIntDigits = 1, ?string $locale = null, ?string $sepFraction = null, ?string $sepThousand = null, ?string $rplcFracZero = null): string

  • $number - int|float|string|null
    The number to format.

  • $minFracDigits
    Minimum number of fraction digits after the fraction-separator.

  • $maxFracDigits
    Maximum number of fraction digits after the fraction-separator.

  • $minIntDigits
    Not yet implemented

  • $locale
    (optional, default NULL) If NULL system's default locale (DE) is used.
    This determines which thousands-separator- (DE: ".") and fraction-separator-char (DE: ",") is used.

  • $sepFraction
    Optional fraction-separator-char. Default is ",".

  • $sepThousand
    Optional thousands-separator-char. Default ".".

  • $rplcFracZero
    Optional String that will be appended if no fractions occur. Use this (",-") e.g. for price-formatting:  49.00 =>  49,-


Examples

Numbers

{{ hublify.format_number( 123456.1 , 0, 4) }}    =>    123.456,1

{{ hublify.format_number( 123456.1 , 4) }}       =>    123.456,1000

{{ hublify.format_number( 123456.1 , 2, 4) }}    =>    123.456,10

{{ hublify.format_number( 123456.778899 , 2, 4) }}    =>    123.456,7788

Prices

You can use the "zero-fraction-replace"-parameter to beautify outputs to like:  49,-

Tip: For formatting prices, there is a special function format_price(...) available, with less parameters necessary.

{{ hublify.format_number( 123456.1 , 2 ) }}    =>    123.456,10

{{ hublify.format_number( 49 , 2 ) }}          =>    49,00

{{ hublify.format_number( 49 , 2 , 2, 1, null, null, null , ",-" ) }}          =>    49,-
{{ hublify.format_number( 49.5 , 2 , 2, 1, null, null, null , ",-" ) }}        =>    49,50