<i18n dev> RFR: 8314604: j.text.DecimalFormat behavior regarding patterns is not clear [v2]
Justin Lu
jlu at openjdk.org
Tue Aug 29 21:42:28 UTC 2023
> Please review this PR and [CSR](https://bugs.openjdk.org/browse/JDK-8314607) which clarifies the behavior of patterns in regards to the max integer digits in j.text.DecimalFormat.
>
> The current specification (of `applyPattern`) states that patterns do not set the value of max integer digits. This is incorrect, these methods/constructors do set a value for the max integer digits. If the pattern is in scientific notation, the max integer digits value is derived from the pattern. Otherwise, the pattern is ignored, and the limit is set to `Integer.MAX_VALUE`.
>
> See below,
>
> DecimalFormat df = new DecimalFormat();
> df.applyPattern("000.000E0");
> df.getMaximumIntegerDigits(); // ==> 3
> df.applyPattern("000.000");
> df.getMaximumIntegerDigits(); // ==> 2147483647
>
> DecimalFormat df = new DecimalFormat("000.000");
> df.getMaximumIntegerDigits(); // ==> 2147483647
> DecimalFormat df = new DecimalFormat("000.000E0");
> df.getMaximumIntegerDigits(); // ==> 3
>
>
> Method descriptions should be fixed, and the relevant constructors need to mention the behavior as well.
Justin Lu has updated the pull request incrementally with one additional commit since the last revision:
Reflect review comments: Non sci notation first. Link to Scientific Notation section
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/15349/files
- new: https://git.openjdk.org/jdk/pull/15349/files/3702f48b..93b0053e
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=15349&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=15349&range=00-01
Stats: 33 lines in 1 file changed: 4 ins; 0 del; 29 mod
Patch: https://git.openjdk.org/jdk/pull/15349.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/15349/head:pull/15349
PR: https://git.openjdk.org/jdk/pull/15349
More information about the i18n-dev
mailing list