gpt4 book ai didi

c++ - 删除浮点值的尾随零 C++

转载 作者:行者123 更新时间:2023-11-28 05:10:42 25 4
gpt4 key购买 nike

我正在尝试设置一个 nodemcu 模块来从温度传感器收集数据,并使用 mqtt pubsubclient 将其发送到我的 mqtt 代理,但这不是问题所在。

我试图以一种只有一位小数的格式发送温度,此时我已经成功地将它向上或向下舍入,但格式不正确。截至目前,它将温度四舍五入为 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++ 的新手,所以任何帮助将不胜感激。

最佳答案

不清楚您的 API 是什么。似乎您想传入 C 字符串。在这种情况下,只需使用 sprintf:

#include <stdio.h>

float temp = sensors.getTempCByIndex(0);
char s[30];
sprintf(s, "%.1f", temp);
client.publish("/test/temperature", s, true);

关于c++ - 删除浮点值的尾随零 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43565059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com