我想設置一個nodemcu模塊來從溫度傳感器收集數據,並將它使用mqtt pubsubclient發送到我的mqtt代理,但這不是問題。刪除拖尾零爲一個浮點值C++
我想以只有一位小數的格式發送溫度,在這一點上,我已經成功地將它向上或向下舍入,但格式不正確。截至目前便將臨時到24.50,27.80,23.10等。我想刪除尾隨zereos,所以就變成24.5,27.8,23.1等
我有這樣的代碼成立至今:
#include <math.h>
#include <PubSubClient.h>
#include <ESP8266WiFi.h>
float temp = 0;
void loop {
float newTemp = sensors.getTempCByIndex(0);
temp = roundf((newTemp * 10))/10;
serial.println(String(temp).c_str())
client.publish("/test/temperature", String(temp).c_str(), true);
}
我相當新的C++,所以任何幫助將不勝感激。
[將float轉換爲具有設置精度和十進制數字的字符串的可能的重複?](http://stackoverflow.com/questions/29200635/convert-float-to-string-with-set-precision-number-的十進制數字) –
我試過了正確的答案,但是我得到的錯誤''stringstream'沒有在這個範圍內聲明'stringstream流'; – Benja0906
@MikeNakis - 重複排序,但排序不是;這個問題涉及到一個嵌入式系統,他們有時會有不完整的標準庫。 –