RFR: 8377427: Reduce substring allocations in Color.web(String, double) [v3]
Michael Strauß
mstrauss at openjdk.org
Sat Feb 14 12:11:37 UTC 2026
On Fri, 13 Feb 2026 21:00:02 GMT, Andy Goryachev <angorya at openjdk.org> wrote:
>> Double parsing can be lossy if you think of the input as an _exact_ number. Some algorithms parse an exact number into the nearest representable double by (conceptually) first converting the number with infinite precision, and then rounding to the nearest double. `Double.parseDouble()` does that, while the simpler algorithm in this PR doesn't. It's not like one algorithm is exact and the other isn't, it's more like this algorithm sometimes won't give you the nearest representable double, but be off by an ulp. `Double.parseDouble()` will always give you the nearest representable double.
>
> perhaps a short version of this explanation should be added to the javadoc, to explain the behavior (especially since it differs from `Double.parseDouble()`.
I've thought about that some more, and decided to use a fast algorithm that _does_ guarantee correct rounding for 64-bit significands. This means that the results are now identical to `Double.parseDouble()`, because the latter also guarantees correct rounding.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/2069#discussion_r2807428576
More information about the openjfx-dev
mailing list