@ Steven
I spent a couple hours tracking this down… here’s what I found. It is a little technical…
When I save the data using the core WordPress wpdb object, which one should do when writing to the database, I was specifying the lat/lng as a float number and when WordPress sanitizes the float number, making it safe to write to the database, the default precision for a float of 14 is used which basically “caps” the decimal place to 6 digits. It is actually a bit more complicated than that and I would have to delve deeper myself to better understand myself. But the jist is floating point numbers are approximate representations of real numbers and they are not exact. Suffice to say, I did not know this.
That said, there’s actually no way to change that precision when telling WordPress to sanitize a float. So the only solution is to tell WordPress it is a string and let the database deal with the conversion. Since the table that stores the the lat/lng are setup as decimal (a real number :) ) with a precision of 15 and a scale of 12, the lat/lng will not get rounded until the 12th decimal place.
Anyway, I made the change which will be included in the next update. Aplogies for the trouble.
