diff --git a/src/components/Canvas/Ruler.tsx b/src/components/Canvas/Ruler.tsx index 3f968231..bf496cca 100644 --- a/src/components/Canvas/Ruler.tsx +++ b/src/components/Canvas/Ruler.tsx @@ -64,7 +64,12 @@ export function Ruler({ strokeWidth={isMajor ? 1 : 0.5} listening={false} />, ); - const displayMm = horizontalReversed ? labelWidthMm - mm : mm; + // `mm` was rounded above; subtraction reintroduces IEEE-754 artefacts + // (e.g. 100 - 30 = 70.00000000000001), so re-round to keep tick labels + // free of trailing-decimal noise on rotated labels. + const displayMm = horizontalReversed + ? Math.round((labelWidthMm - mm) * 1000) / 1000 + : mm; if (isMajor && displayMm > 0 && displayMm <= labelWidthMm) { els.push( , ); - const displayMm = verticalReversed ? labelHeightMm - mm : mm; + const displayMm = verticalReversed + ? Math.round((labelHeightMm - mm) * 1000) / 1000 + : mm; if (isMajor && displayMm > 0 && displayMm <= labelHeightMm) { els.push(