NEO-GPS-7M Module accuracy test

I have 4 NEO-GPS-7M modules I can find, and 3 hiding from me. I tested all this morning, with these results:

Module 1 indicated location: LAT.919403 LON.866851
Module 2 indicated location: LAT.920215 LON.866485
Module 3 indicated location: INVALID
Module 4 indicated location: LAT.920230 LON.866493
LAT & LONG obfuscated for privacy, what matters here is consistency to the right of the decimal point.

If these lines:

  {
    Serial.print(gps.location.lat(), 6);
    Serial.print(F(","));
    Serial.print(gps.location.lng(), 6);
  }

are changed to:

  {
    Serial.print(gps.location.lat(), 4);
    Serial.print(F(","));
    Serial.print(gps.location.lng(), 4);
  }

the outputs are consistent

so, don't bother going for 6 digits of precision with a module that is only consistent to 4 digits.

The INVALID location module will work fine for a clock.

The problem is not the module. With AVR-based Arduinos, float values are 32 bits, and can represent a number with 6 to 7 total digits. 64 bit doubles are not supported.

There is no point in printing 6 digits after the decimal point, if there is one or more in front.

And for latitude the 6th digit after the decimal point would represent units of 11cm.