gpt4 book ai didi

c++ - Arduino sprintf float 未格式化

转载 作者:IT老高 更新时间:2023-10-28 12:31:38 27 4
gpt4 key购买 nike

我有这个 arduino 草图,

char temperature[10];
float temp = 10.55;
sprintf(temperature,"%f F", temp);
Serial.println(temperature);

温度输出为

? F

关于如何格式化这个 float 有什么想法吗?我需要它是一个字符字符串。

最佳答案

由于某些性能原因,%f 未包含在 Arduino 的 sprintf() 实现中。更好的选择是使用 dtostrf() - 将浮点值转换为 C 风格的字符串,方法签名如下所示:

char *dtostrf(double val, signed char width, unsigned char prec, char *s)

使用此方法将其转换为C-Style字符串,然后使用sprintf,例如:

char str_temp[6];

/* 4 is mininum width, 2 is precision; float value is copied onto str_temp*/
dtostrf(temp, 4, 2, str_temp);
sprintf(temperature,"%s F", str_temp);

您可以更改最小宽度和精度以匹配您要转换的 float 。

关于c++ - Arduino sprintf float 未格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27651012/

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