]> git.tdb.fi Git - ext/subsurface.git/commitdiff
Don't drop precision from floating point GP coordinates
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 9 Oct 2011 02:19:16 +0000 (14:19 +1200)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 9 Oct 2011 02:19:16 +0000 (14:19 +1200)
Using '%f' limits the precision to 6 decimals, which may well be
perfectly ok.  But at least in theory you *could* have higher precision,
and gps units will report it, so don't mindlessly limit us to what %f
shows.

This arbitrarily uses '%.12g' instead.  %g will drop excess zeroes at
the end, so it actually results in the same (or shorter) ascii
representation unless you have the extra precision.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
save-xml.c

index d6774b5c7f880bb425f9e43209038b13568756f7..4183b1c51ade4cb9fb36c0f2727d56a3b601fbbb 100644 (file)
@@ -162,7 +162,7 @@ static void show_location(FILE *f, struct dive *dive)
         */
        if (latitude || longitude) {
                int len = snprintf(buffer, sizeof(buffer)-4,
-                       "  <location gps='%f %f'>",
+                       "  <location gps='%.12g %.12g'>",
                        latitude, longitude);
                if (!dive->location) {
                        memcpy(&buffer[len-1], "/>\n", 4);