1

我正在尝试使用 Arduino 的string.toDouble()命令在我的一个 Arduino 项目(特别是在 Arduino IDE 中使用 Teensy 3.5)中将字符串转换为双精度。当我尝试实现如下代码所示的函数时,出现错误:

<'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);
}
4

2 回答 2

1

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

我只看到toInttoFloat 在 Teensy 的String实现中。虽然最初的 Arduino 核心已经实现。

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

myNumber = atof(myNumberString.c_str());
于 2018-01-17T03:41:37.723 回答
1

您遇到的问题是 arduino 声明myNumberString为字符串对象,因此您不能使用toDouble()将字符串转换为双精度,因为该函数未在 String 类中定义。您将不得不使用toFloat来转换您的字符串。这是我用来找到这个的链接。

于 2018-01-17T03:37:55.953 回答