How do you convert a String to a float or int?

arduino

Solution

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);

Problem

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?

Original source