<i18n dev> RFR: 8159023: Engineering notation of DecimalFormat does not work as documented [v3]

Justin Lu jlu at openjdk.org
Tue May 23 05:31:37 UTC 2023

> Please review this PR which updates the Scientific Notation section of Decimal Format. It aims to resolve [JDK-8159023](https://bugs.openjdk.org/browse/JDK-8159023) as well as [JDK-6282188](https://bugs.openjdk.org/browse/JDK-6282188).
> **Scientific Notation** in Decimal Format contains the definition for a scientific notation formatted number's mantissa as such: _The number of significant digits in the mantissa is the sum of the minimum integer and maximum fraction digits, and is unaffected by the maximum integer digits. For example, 12345 formatted with "##0.##E0" is "12.3E3"._
> Both the definition and example are incorrect, as the actual result is "12.E345". 
> The following example data show that scientific notation formatted numbers do not adhere to that definition. As, according to the definition, the following numbers should have 3 significant digits, but in reality, they have up to 5.
> 123 formatted by ##0.#E0 is 123E0
> 1234 formatted by ##0.#E0 is 1.234E3
> 12345 formatted by ##0.#E0 is 12.34E3
> 123456 formatted by ##0.#E0 is 123.5E3
> 1234567 formatted by ##0.#E0 is 1.235E6
> 12345678 formatted by ##0.#E0 is 12.35E6
> 123456789 formatted by ##0.#E0 is 123.5E6 
> The actual definition of the mantissa, as well as examples and further context are included in this change. In addition, a test has been added that tests various patterns to numbers and ensures the format follows the new definition's mathematical expression.

Justin Lu has updated the pull request incrementally with one additional commit since the last revision:

  Review: replace counting with isDigit, use all caps static final vars


  - all: https://git.openjdk.org/jdk/pull/14066/files
  - new: https://git.openjdk.org/jdk/pull/14066/files/faa32ec6..dd516b63

 - full: https://webrevs.openjdk.org/?repo=jdk&pr=14066&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=14066&range=01-02

  Stats: 13 lines in 1 file changed: 0 ins; 5 del; 8 mod
  Patch: https://git.openjdk.org/jdk/pull/14066.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/14066/head:pull/14066

PR: https://git.openjdk.org/jdk/pull/14066

More information about the i18n-dev mailing list