Skip to content

Commit

Permalink
uNumberToStr(double): added "fixed" param (default false) to fix ros …
Browse files Browse the repository at this point in the history
…param double/int conversion issue.
  • Loading branch information
matlabbe committed Nov 12, 2022
1 parent 16e3314 commit 6d713c2
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
6 changes: 3 additions & 3 deletions corelib/src/Graph.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -524,9 +524,9 @@ bool exportGPS(
for(std::map<int, GPS>::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
Expand Down
4 changes: 2 additions & 2 deletions utilite/include/rtabmap/utilite/UConversion.h
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
14 changes: 10 additions & 4 deletions utilite/src/UConversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}

Expand Down

0 comments on commit 6d713c2

Please sign in to comment.