最近更新于 2024-05-05 12:32
比如我这个例子,准备做个简易的温湿度计,最开始直接用的 sprintf 拼接温度和湿度的字符串到 LCD1602 屏幕显示,但是发现显示出来不是未知的整数就是显示问号,查了一下才知道确实是没法用。
这个可以用 dtostrf 代替实现:
char* dtostrf(double val, signed char width, unsigned char prec, char *s)
val
为要转换的浮点数;
width
可以为正数或负数,正数表示从右端开始计算长度,负数表示从左端开始计算长度。如果转换后字符串的长度超过width指定的长度,那么width参数会被忽略。如果转换后字符串的长度小于width指定的长度,那么空余的位置会用空格填充;
prec
为保留的小数位数
s
就是转换结果的字符串
Arduino 上 sprintf 浮点数转字符串无法正常工作