I am trying to convert nmea.getLatitude() to string and add N/S/E/W . However, none of the way of converting long to string works. Any ideas?
if (nmea.isValid() == true) {
long latitude_mdeg = (nmea.getLatitude() / 10000., 2);
long longitude_mdeg = (nmea.getLongitude() / 10000., 2);
String latitude1_string = String(latitude_mdeg);
String longitude1_string = String(longitude_mdeg);
Serial.print("Latitude (deg): ");
Serial.println(latitude1_string );
Serial.print("Longitude (deg): ");
Serial.println(longitude1_string);
}
The problem I have is latitude1_string and longitude1_string prints out "2".
I am not sure why
Get rid of the ", 2" after the decimal places. Look up "C/C++ comma operator" to learn why.
You don't need the String operations. Serial.print() can handle numbers.
I am just printing it out right now for debugging. I still need it in a variable to form other strings.
Ok. Found what's wrong. Thanks
> if (nmea.isValid() == true) {
> float latitude_mdeg = nmea.getLatitude() / 10000.;
> float longitude_mdeg = nmea.getLongitude() / 10000.;
> String latitude1 = (latitude_mdeg > 0) ? String(latitude_mdeg)+"N" : String(latitude_mdeg)+"S";
> String longitude1 = (longitude_mdeg > 0) ? String(longitude_mdeg)+"E" : String(fabs(longitude_mdeg))+"W";
>
> Serial.print("Latitude (deg): ");
> Serial.println(latitude1);
> Serial.print("Longitude (deg): ");
> Serial.println(longitude1);
No, you never do.
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.