Arduino中資料型別轉換 float/double轉換為char 親測好使,dtostrf()函式
阿新 • • 發佈:2019-01-05
如何輕鬆玩轉Arduino微控制器,當我在進行資料轉換的時候,遇到了問題,嘗試了C語言和C++中的好多函式,都沒有達到將float型資料轉換為char型的目的。苦苦查閱資料後,終於找到了一個大神級函式!!!dtostrf(),可以輕鬆實現資料型別from float to char . get it
格式如下:
char* dtostrf(double _val,signed char _width, unsigned char prec, char* _s)
引數說明:
_val:要轉換的float或者double值。
_width:轉換後整數部分長度。
_prec:轉換後小數部分長度。
_s:儲存到該char陣列中。
示例如下:
float f=3.1415;
char c[];
dtostrf(f,1,2,c);
Serial.println(c);
此時從Arduino自帶串列埠監視器中將輸出3.14,即成功實現了資料型別轉換。資料轉換之後,我們可以對字串進行一個拼接。如下,將實現字串的拼接
float f=3.1415;
char c[];
dtostrf(f,1,2,c);
Serial.println(c);
//定義一個字串
char s[]="///sensor1///ly///sensor1///PM2.5///100.70///";
//進行字串拼接操作
strcat(s,c);
Serial.println(s);
此時將在Arduino自帶串列埠監視器中將輸出///sensor1///ly///sensor1///PM2.5///100.70///3.14,即成功實現了字串的拼接。特別說明:Arduino中可以直接呼叫C語言中的strcat()函式來實現對字串的拼接。