Integrated: 8159023: Engineering notation of DecimalFormat does not work as documented

Justin Lu jlu at openjdk.org
Thu May 25 21:58:08 UTC 2023


On Sat, 20 May 2023 00:00:42 GMT, Justin Lu <jlu at openjdk.org> wrote:

> 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.

This pull request has now been integrated.

Changeset: 46c4da7f
Author:    Justin Lu <jlu at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/46c4da7fddb8103934f2a90b4456a5ce6ed3467c
Stats:     147 lines in 2 files changed: 140 ins; 0 del; 7 mod

8159023: Engineering notation of DecimalFormat does not work as documented

Reviewed-by: naoto

-------------

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


More information about the core-libs-dev mailing list