RFR: 8338690: CompactNumberInstance.format incorrectly formats some numbers (few vs many)

Roger Riggs rriggs at openjdk.org
Fri Aug 23 19:04:09 UTC 2024


On Fri, 23 Aug 2024 17:54:55 GMT, Roger Riggs <rriggs at openjdk.org> wrote:

>> Fixing an issue wrt wrong plural suffix with compact format for some locales. It was retrieving the suffix based on the value before the rounding, which ended up in wrong plural expression.
>
> src/java.base/share/classes/java/text/CompactNumberFormat.java line 905:
> 
>> 903:                 divisor = divisors.get(++compactDataIndex);
>> 904:             }
>> 905:             var noFraction = number.mod(new BigInteger(divisor.toString()))
> 
> Why not create the BigInteger from the `divisor.longValue()`.
> I see the pattern formatting to a string and BigInteger re-parsing it but why?

I guess the range of the divisor may be bigger than a long.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20680#discussion_r1729402019


More information about the core-libs-dev mailing list