On this page
View Helpers
NumberFormat
The NumberFormat view helper can be used to simplify rendering of
locale-specific number and/or percentage strings. It acts as a wrapper for the
NumberFormatter class within PHP's
internationalization extension (ext/intl).
Basic Usage
echo $this->numberFormat(1000); // '1,000'
By default, if no locale is provided, NumberFormat will use the system
locale provided by PHP's Locale class and the getDefault() method.
(The above example assumes that the environment locale is set to en_US.)
Using Format Style
This option sets the style of the formatting; one of the
NumberFormatter format style constants.
// Example 1
echo $this->numberFormat(0.8, NumberFormatter::PERCENT); // '80%'
// Example 2
echo $this->numberFormat(0.00123456789, NumberFormatter::SCIENTIFIC); // '1,23456789E-3'
// Example 1
$this->plugin('numberFormat')->setFormatStyle(NumberFormatter::PERCENT);
echo $this->numberFormat(0.8); // '80%'
// Example 2
$this->plugin('numberFormat')->setFormatStyle(NumberFormatter::SCIENTIFIC);
echo $this->numberFormat(0.00123456789); // '1,23456789E-3'
(The above examples assumes that the environment locale is set to en_US.)
Get current Value
To get the current value of this option, use the getFormatStyle() method.
$this->plugin('numberFormat')->setFormatStyle(NumberFormatter::PERCENT);
echo $this->plugin('numberFormat')->getFormatStyle(); // 3 (NumberFormatter::DEFAULT_STYLE)
Default Value
The default value of this option is NumberFormatter::DEFAULT_STYLE.
Using Format Type
The format type speficied the NumberFormatter formatting type
to use.
echo $this->numberFormat(1234567.89, null, NumberFormatter::TYPE_INT32); // '1.234.567'
$this->plugin('numberFormat')->setFormatType(NumberFormatter::TYPE_INT32);
echo $this->numberFormat(1234567.89); // '1.234.567'
(The above examples assumes that the environment locale is set to en_US.)
Get current Value
To get the current value of this option, use the getFormatType() method.
$this->plugin('numberFormat')->setFormatType(NumberFormatter::DECIMAL);
echo $this->plugin('numberFormat')->getFormatType(); // 1 (NumberFormatter::DECIMAL)
Default Value
The default value of this option is NumberFormatter::TYPE_DEFAULT.
Using Locale
echo $this->numberFormat(1000, null, null, 'en_US'); // '1,000'
$this->plugin('currencyFormat')->setLocale('en_US');
echo $this->numberFormat(1000); // '1,000'
Locale::setDefault('en_US');
echo $this->numberFormat(1000); // '1,000'
Get current Value
To get the current value of this option, use the getLocale() method.
$this->plugin('numberFormat')->setLocale('en_US');
echo $this->plugin('numberFormat')->getLocale(); // 'en_US'
Default Value
By default, if no locale is provided, NumberFormat will use the system
locale provided by PHP's Locale::getDefault().
Using Decimals
Sets the number of digits beyond the decimal point to display.
echo $this->numberFormat(1234, null, null, null, 5); // '1,234.00000'
$this->plugin('currencyFormat')->setDecimals(5);
echo $this->numberFormat(1234); // '1,234.00000'
(The above examples assumes that the environment locale is set to en_US.)
Get current Value
To get the current value of this option, use the getDecimals() method.
$this->plugin('numberFormat')->setDecimals(5);
echo $this->plugin('numberFormat')->getDecimals(); // 5
Default Value
The default value of this option is null that means the attributes for minimum
and maximum fraction digits will not be set on the NumberFormatter.
Using Text Attributes
This option sets the text attributes of the formatting, like prefix and suffix
for positive and negative numbers. See
NumberFormatter text attribute constants.
echo $this->numberFormat(
-1000,
null, // Format style
null, // Format type
null, // Locale
null, // Decimals
[
NumberFormatter::NEGATIVE_PREFIX => '(minus) ',
]
); // '(minus) 1,000'
$this->plugin('currencyFormat')->setTextAttributes([
NumberFormatter::NEGATIVE_PREFIX => '(minus) ',
]);
echo $this->numberFormat(-1000); // '(minus) 1,000'
(The above examples assumes that the environment locale is set to en_US.)
Get current Value
To get the current value of this option, use the getTextAttributes() method.
$this->plugin('numberFormat')->setTextAttributes([
NumberFormatter::POSITIVE_PREFIX => '(plus) ',
NumberFormatter::NEGATIVE_PREFIX => '(minus) ',
]);
var_dump($this->plugin('numberFormat')->getTextAttributes()); // ['(plus) ', '(minus) ']
Default Value
The default value of this option is an empty array;