Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8188147

Compact Number Formatting support

    Details

    • Type: CSR
    • Status: Closed
    • Priority: P4
    • Resolution: Approved
    • Fix Version/s: 12
    • Component/s: core-libs
    • Labels:
      None
    • Subcomponent:
    • Compatibility Kind:
      behavioral
    • Compatibility Risk:
      minimal
    • Compatibility Risk Description:
      Since the new APIs are added, the compatibility risk is minimal.
    • Interface Kind:
      Java API
    • Scope:
      SE

      Description

      Summary

      Adding support for the compact/short number formatting in JDK.

      Problem

      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.

      Solution

      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.

      For Example:

      • 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:

      CompactNumberFormat class targeted for compact number formatting

      public class CompactNumberFormat extends NumberFormat

      NumberFormat.Style enum for specifying the format style

      public static enum NumberFormat.Style

      public factory methods in NumberFormat.java to obtain CompactNumberFormat instance

      public static NumberFormat getCompactNumberInstance()
      public static NumberFormat getCompactNumberInstance(Locale locale,
                                                   NumberFormat.Style formatStyle)

      Provider method in java/text/spi/NumberFormatProvider

      public NumberFormat getCompactNumberInstance(Locale locale, NumberFormat.Style formatStyle)

      Specification

      http://cr.openjdk.java.net/~nishjain/8177552/specdiff/specdiff_cnf.10/overview-summary.html

      Serialized form

      http://cr.openjdk.java.net/~nishjain/8177552/specdiff/specdiff_cnf.10/serialized-form.html#java.text.CompactNumberFormat

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                nishjain Nishit Jain
                Reporter:
                naoto Naoto Sato
                Reviewed By:
                Naoto Sato, Roger Riggs
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: