Floating Point Imprecision

I’m trying to do some procedural generation using instanced static meshes. I have tunnels made of modular, equally-sized pieces. However, because of the nature of floating points, my rotation value sometimes 90.0000000 8, or my scale is sometimes 0.9999999. This becomes a problem because you start to see seams in the pieces. This is a clip showing what I mean. (Make sure you do 1080p.)

Does anybody know how I can circumvent this, if at all?

You could use the Floor node, it rounds up to the highest number.
If it’s then i.e. +1 everytime, just do Floor minus 1.

For my own projects I work in sizes of 100 so that I can divide by 100 and Floor it and then multiply it back to 100.
This way I always end up with perfect blocks.

I tried using FMath::FloorToInt, FMath::FloorToFloat, FMath::RoundToInt, and FMath::RoundToFloat, and none of them work; My rotation value ends up being +/- 125.264389, and adding instances using this rotation value causes the editor to crash.

Any other ideas?