Programs store and operate on numbers using a locale-independent binary
representation. When displaying or printing a number it is converted to a
locale-specific string. For example, the number 12345.67 is "12,345.67" in
the US, "12 345,67" in France and "12.345,67" in Germany.
By invoking the methods provided by the NumberFormatter class, you can
format numbers, currencies, and percentages according to the specified or
default locale. NumberFormatter is locale-sensitive so you need to create
a new NumberFormatter for each locale. NumberFormatter methods format
primitive-type numbers, such as double and output the number as a
locale-specific string.
For currencies you can use currency format type to create a formatter that
returns a string with the formatted number and the appropriate currency
sign. Of course, the NumberFormatter class is unaware of exchange rates
so, the number output is the same regardless of the specified currency.
This means that the same number has different monetary values depending on
the currency locale. If the number is 9988776.65 the results will be:
9 988 776,65 € in France
9.988.776,65 € in Germany
$9,988,776.65 in the United States
In order to format percentages, create a locale-specific formatter with
percentage format type. With this formatter, a decimal fraction such as
0.75 is displayed as 75%.
For more complex formatting, like spelled-out numbers, the rule-based
number formatters are used.
The public rule sets. This is only available with rule-based
formatters. This is a read-only attribute. The public rulesets are
returned as a single string, with each ruleset name delimited by ';'
(semicolon).