5
double ambientTemp=44.00;
String yourdatacolumn="yourdata=";
String yourdata; 
double yourarduinodata=ambientTemp; 
yourdata = yourdatacolumn + yourarduinodata; 

//我希望输出是字符串。但由于您的arduinodata 是双重类型。无法将其转换为字符串。然后,我把(String)放在你的arduinodata前面,仍然不让我跑过去。

任何人都知道如何在 arduino 草图中将双精度类型转换为字符串类型;

4

3 回答 3

11

将双精度转换为字符串的另一种方法:

    char TempString[10];  //  Hold The Convert Data

    dtostrf(ambientTemp,2,2,TempString);
 // dtostrf( [doubleVar] , [sizeBeforePoint] , [sizeAfterPoint] , [WhereToStoreIt] )
    YourArduinoData = String(TempString);  // cast it to string from char 
于 2013-11-08T21:27:15.303 回答
10

利用 -String(val, decimalPlaces)

例子,

double a = 10.2010;

String SerialData="";

SerialData = String(a,4);

Serial.println(SerialData);
于 2016-06-03T06:31:49.757 回答
3

像这样的东西可能会起作用:

String double2string(double n, int ndec) {
    String r = "";

    int v = n;
    r += v;     // whole number part
    r += '.';   // decimal point
    int i;
    for (i=0;i<ndec;i++) {
        // iterate through each decimal digit for 0..ndec 
        n -= v;
        n *= 10; 
        v = n;
        r += v;
    }

    return r;
}
于 2013-11-08T19:42:13.780 回答