I think this could be caused by the usage of Registers to store locals on release mode, as rounding works in a different way.
That was my first thought.
But storing registers to memory causes them to lose precision. This code gives better values with debug on. That's the opposite of what I expected.