【问题标题】:Arduino's string.toDouble() not workingArduino string.toDouble() 不工作
【发布时间】:2018-01-17 01:47:15
【问题描述】:

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

【问题讨论】:

    标签: arduino teensy


    【解决方案1】:

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

    我只看到toInttoFloat inside Teensy's implementation of the String class。而the original Arduino core 已经实现了。

    也许你可以直接使用atof,比如:

    myNumber = atof(myNumberString.c_str());
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2019-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多