I'm not sure how your answer is relevant to my scenario - my maths is pretty rusty, but, regardless of precision, the '13' that is being banged into the result when using Serial.print to display it, simply does not exist in the original number.
Sorry for the stupid q's, but this is doing my head in. In the end, all I want to do is produce the same result, including the '13', without using Serial.print so I can log it to an SD card.
Because float 32bit is with 7digits precision, and you printed 2digits+7decimal places = 9digits, therefore the last 2 digits are the artifacts.
So you have to "Serial.print(pLAT/100000.0, x);"
where x = (7 - number_of_digits_of_the_integer_part)
If you want it to be faithful to the integer value, without artifacts, report it as nn.ddddd00, installing the decimal place yourself. Of course, that isn't 7 decimal places of precision, but then neither is the result from the divide, with its artifacts.
You pretty much have to deal with the numbers you get, and all you have is seven digits to work with. Extending it to 9 digits is just pretending you have more precision than you have.
It's either that, or you could rewrite the Arduino librariy's float math functions.