Adding support for the short number formatting in JDK.
The existing NumberFormat APIs provide support for formatting/parsing general purpose numbers e.g. decimal, currency, and percentage, but the support for formatting in compact forms of numbers is not available.
Add the support for formatting the numbers in compact forms. Each locale has different compact forms for representing a number, hence a number can be formatted in multiple ways across locales.
- 1000 can be formatted as 1K, and 1000000 as 1M in "en_US" locale
- 1000 can be formatted as 1 हज़ार, and 50000000 as 5 क'.' In "hi_IN" locale
CLDR provides patterns for compact number formatting. These resources can be utilized to add locale specific compact number formatting support.
Following major public APIs are introduced for compact number formatting feature:
CompactDecimalFormat class targeted for compact number formatting
public class CompactDecimalFormat extends DecimalFormat
CompactDecimalFormat.Style enum for specifying the format style
public static enum CompactDecimalFormat.Style
Provider method in java/text/spi/NumberFormatProvider
public NumberFormat getCompactNumberInstance(Locale, Style)