I realise this is caused by the inaccuracies in converting the var to floating point
So there is no mistake, just limit the output to %.3f. If someone does not know why the output is 123456.789063 he will probably search/ ask for it, what will increase his knowledge (about the important fact of inaccuracies of computer maths).
(Sorry for being a smart-ass.)