In an Arduino program I'm working on the GPS sends the coordinates to the arduino through USB. Because of this, the incoming coordinates are stored as Strings. Is there any way to convert the GPS coordinates to a float or int?
I've tried int gpslong = atoi(curLongitude)
and float gpslong = atof(curLongitude)
, but they both cause Arduino to give an error:
error: cannot convert 'String' to 'const char*' for argument '1' to 'int atoi(const char*)'
Does anyone have any suggestions?
You can get an int
from a String
by just calling toInt
on the String
object (e.g. curLongitude.toInt()
).
If you want a float
, you can use atof
in conjunction with the toCharArray
method:
char floatbuf[32]; // make this at least big enough for the whole string
curLongitude.toCharArray(floatbuf, sizeof(floatbuf));
float f = atof(floatbuf);
c_str()
will give you the string buffer const char* pointer.
.
So you can use your convertion functions:. int gpslong = atoi(curLongitude.c_str())
float gpslong = atof(curLongitude.c_str())
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With