Do you mean the exported GPS format is only 6 of precision? The internal format is double. For the export, you may change these
lines:
fprintf(fout, "%f %f %f %f %f %f\n",
iter->second.stamp(),
iter->second.longitude(),
iter->second.latitude(),
iter->second.altitude(),
iter->second.error(),
iter->second.bearing());
to
fprintf(fout, "%.*f %.*f %.*f %.*f %.*f %.*f\n",
8, iter->second.stamp(),
8, iter->second.longitude(),
8, iter->second.latitude(),
8, iter->second.altitude(),
8, iter->second.error(),
8, iter->second.bearing());
to get your 8 decimals precision.