我正在使用Arduino Uno通过XBee传输GPS值。我通过使用long
完成了这个,现在我尝试使用float。数据为11.235689, 76.365879
。
如何解析并将字符串转换为float?
答案 0 :(得分:1)
您可以使用:
char floatbuf[32];
coordinates.toCharArray(floatbuf, sizeof(floatbuf));
float f = atof(floatbuf);
您可以看到更多here。
答案 1 :(得分:0)
感谢您的回复,这就是我从字符串转换为float的方式
String data; // declare this before void setup
data=XBee.readStringUntil('\n'); //reads XBbee data to string
int commaIndex=data.indexOf(',');
int secondcommaIndex=data.indexOf(',',commaIndex+1);
String data1=data.substring(0,commaIndex);
String data2=data.substring(commaIndex+1);
char charBuff[10];
data1.toCharArray(charBuff,10);
float input_lat= atof(charBuff);
Serial.print("input_lat: ");
Serial.println(input_lat,6);
char chaBuff[10];
data2.toCharArray(chaBuff,10);
float input_lng= atof(chaBuff);
Serial.print("input_lng: ");
Serial.println(input_lng,6);