我正在尝试使用Arduino的string.toDouble()
命令在我的一个Arduino项目(特别是在Arduino IDE中使用Teensy 3.5)中将字符串转换为double。当我尝试实现下面代码中显示的函数时,我收到错误:
<'class String' has no member named 'toDouble'>.
但是,string.toFloat()
和string.toInt()
成功运作。
关于出了什么问题的任何想法?
String myNumberString = "100";
double myNumber = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
myNumber = myNumberString.toDouble()+1;
Serial.println(myNumber);
myNumberString = String(myNumber);
delay(1000);
}
答案 0 :(得分:1)
您遇到的问题是arduino将myNumberString
声明为String对象,因此您无法使用toDouble()
将字符串转换为double,因为该函数未在字符串类。您必须使用toFloat
转换字符串。我曾经在the link找到了这个。
答案 1 :(得分:1)
似乎Teensy的Arduino核心缺少这个功能。
我只看到toInt
和toFloat
inside Teensy's implementation of the String
class。虽然the original Arduino core实施了它。
也许您可以直接使用atof
,例如:
myNumber = atof(myNumberString.c_str());