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