Arduino的string.toDouble()不起作用

时间:2018-01-17 01:47:16

标签: arduino teensy

我正在尝试使用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);
}

2 个答案:

答案 0 :(得分:1)

您遇到的问题是arduino将myNumberString声明为String对象,因此您无法使用toDouble()将字符串转换为double,因为该函数未在字符串类。您必须使用toFloat转换字符串。我曾经在the link找到了这个。

答案 1 :(得分:1)

似乎Teensy的Arduino核心缺少这个功能。

我只看到toInttoFloat inside Teensy's implementation of the String class。虽然the original Arduino core实施了它。

也许您可以直接使用atof,例如:

myNumber = atof(myNumberString.c_str());