Formatting numbers by locale
Numeric representations can vary by locale. As a simple example, in the UK one would see the number three million, eighty thousand, five hundred and twelve, and ninety-two one hundredths as follows:
3,080,512.92.
In France, however, the same number might appear like so:
3 080 512,92
How to do it...
Before you can represent a number in a locale-specific manner, you need to determine the locale. This can be accomplished using the Application\I18n\Locale
class discussed in the previous recipe. The locale can be set manually or from header information.
Next, we will make use of the
format()
method of theNumberFormatter
class, to both output and parse numbers in a locale-specific format. First we add a property that will contain an instance of theNumberFormatter
class:use NumberFormatter; protected $numberFormatter;
Note
Our initial thought would be to consider using the PHP function
setlocale()
to produce numbers formatted according to locale. The problem with this legacy...