On Sun, 21 Dec 2025 16:10:45 GMT, Marius Hanl <[email protected]> wrote:

>> Ah yes, you are right, I skipped over the `+=` operation; indeed it also 
>> needs snapping.  It is simply the reality that even when values are already 
>> snapped, adding two snapped values together can still introduce a rounding 
>> error that must be resnapped.
>
> Should we snap the (here intermediate) value of `getSpacing()` as well? We 
> could do that once before the whole for loop, and use the value. But I'm not 
> sure if that even makes a difference?

Well, it is already snapped in its own way:


    private final double getSpacing() {
        return spacing == null ? 0.0 : snapSpacing(spacing.get());
    }


And even when it is snapped, once there's potential for decimal component 
(i.e., introduced by 1.25 scaling) in its value, then there's a risk of these 
floating point rounding errors when adding it to anything else.

So I don't think it makes any difference to what is done with the spacing 
value. I think what matters is that the final value of x is rounded off, which 
is really the point of snapPosition. 

This snapPosition on x call could be done at the end, outside of the for loop 
either, I imagine, also. As long as a final value looks like 123.62, and not 
123.62000000000001.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/2016#discussion_r2637973119

Reply via email to