The NumberParse
filter can be used to parse a number from a string. It acts as a wrapper for the NumberFormatter
class within the Internationalization extension (Intl).
The following options are supported for NumberParse
:
NumberParse([ string $locale [, int $style [, int $type ]]])
$locale
: (Optional) Locale in which the number would be parsed (locale name, e.g. en_US). If unset, it will use the default locale (Locale::getDefault()
)Methods for getting/setting the locale are also available:
getLocale()
andsetLocale()
$style
: (Optional) Style of the parsing, one of the format style constants. If unset, it will useNumberFormatter::DEFAULT_STYLE
as the default style.Methods for getting/setting the parse style are also available:
getStyle()
andsetStyle()
$type
: (Optional) The parsing type to use. If unset, it will useNumberFormatter::TYPE_DOUBLE
as the default type.Methods for getting/setting the parse type are also available:
getType()
andsetType()
$filter = new \Zend\I18n\Filter\NumberParse("de_DE");
echo $filter->filter("1.234.567,891");
// Returns 1234567.8912346
$filter = new \Zend\I18n\Filter\NumberParse("en_US", NumberFormatter::PERCENT);
echo $filter->filter("80%");
// Returns 0.80
$filter = new \Zend\I18n\Filter\NumberParse("fr_FR", NumberFormatter::SCIENTIFIC);
echo $filter->filter("1,23456789E-3");
// Returns 0.00123456789