diff --git a/corelib/src/Graph.cpp b/corelib/src/Graph.cpp index d852dc4ba8..8b5ba1ae35 100644 --- a/corelib/src/Graph.cpp +++ b/corelib/src/Graph.cpp @@ -524,9 +524,9 @@ bool exportGPS( for(std::map::const_iterator iter=gpsValues.begin(); iter!=gpsValues.end(); ++iter) { values += uFormat("%s,%s,%s ", - uReplaceChar(uNumber2Str(iter->second.longitude(), 8), ',', '.').c_str(), - uReplaceChar(uNumber2Str(iter->second.latitude(), 8), ',', '.').c_str(), - uReplaceChar(uNumber2Str(iter->second.altitude(), 8), ',', '.').c_str()); + uReplaceChar(uNumber2Str(iter->second.longitude(), 8, true), ',', '.').c_str(), + uReplaceChar(uNumber2Str(iter->second.latitude(), 8, true), ',', '.').c_str(), + uReplaceChar(uNumber2Str(iter->second.altitude(), 8, true), ',', '.').c_str()); } // switch argb (Qt format) -> abgr diff --git a/utilite/include/rtabmap/utilite/UConversion.h b/utilite/include/rtabmap/utilite/UConversion.h index 0b9fd9d356..024d09b0c7 100644 --- a/utilite/include/rtabmap/utilite/UConversion.h +++ b/utilite/include/rtabmap/utilite/UConversion.h @@ -109,13 +109,13 @@ std::string UTILITE_EXP uNumber2Str(int number); * @param number the number to convert in a string * @return the string */ -std::string UTILITE_EXP uNumber2Str(float number, int precision=6); +std::string UTILITE_EXP uNumber2Str(float number, int precision=6, bool fixed = false); /** * Convert a number (double) to a string. * @param number the number to convert in a string * @return the string */ -std::string UTILITE_EXP uNumber2Str(double number, int precision=6); +std::string UTILITE_EXP uNumber2Str(double number, int precision=6, bool fixed = false); /** * Convert a string to an integer. diff --git a/utilite/src/UConversion.cpp b/utilite/src/UConversion.cpp index b310fec34b..200024c0a4 100644 --- a/utilite/src/UConversion.cpp +++ b/utilite/src/UConversion.cpp @@ -102,17 +102,23 @@ std::string uNumber2Str(int number) return s.str(); } -std::string uNumber2Str(float number, int precision) +std::string uNumber2Str(float number, int precision, bool fixed) { std::stringstream s; - s << std::setprecision(precision) << std::fixed << number; + s << std::setprecision(precision); + if(fixed) + s << std::fixed; + s << number; return s.str(); } -std::string uNumber2Str(double number, int precision) +std::string uNumber2Str(double number, int precision, bool fixed) { std::stringstream s; - s << std::setprecision(precision) << std::fixed << number; + s << std::setprecision(precision); + if(fixed) + s << std::fixed; + s << number; return s.str(); }