Ok this irons out, all decimal places after 0,001.  Why? 
The code would be easier to read if you use "floor()" instead, or should it be round()?