nodemcu 모듈을 설정하여 온도 센서에서 데이터를 수집하고 mqtt pubsubclient를 사용하여 mqtt 브로커에 보내려고했지만 문제가되지 않습니다.플로팅 값에 대한 후행 0 제거 C++
온도를 하나의 십진수 만있는 형식으로 보내려고합니다.이 시점에서 필자가 성공적으로 반올림했으나 형식이 올바르지 않습니다. 이 24.50에 임시, 27.80, 23.10 등 반올림 지금의 나는이 후행 zereos를 제거하려면, 그래서, 27.8, 24.5된다 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++을 처음 접했으므로 도움이 될 것입니다.
[부동 소수점을 정수로 설정하고 소수점 이하 자릿수로 변환 하시겠습니까?] (http://stackoverflow.com/questions/29200635/convert-float-to-string-with-set-precision-number- –
올바른 답을 시도했지만 'stringstream'이이 범위에서 'stringstream stream;'라인에 대해 선언되지 않았다는 오류가 발생합니다. – Benja0906
@MikeNakis - 중복 일종의 정렬입니다. 질문은 임베디드 시스템과 관련이 있으며 때로는 불완전한 표준 라이브러리가 있습니다. –