求一个float 转字符串的函数
求一个float 转字符串的函数,精确到小数点后2位可以使用sprintf函数,具体为:
定义一个数组 char str_tmp;
sprintf(str_tmp,"%.2f",Ufloat);//使用格式化字符串.2f进行控制,意思是小数点保留2位 王昱顺 发表于 2024-11-10 16:30
可以使用sprintf函数,具体为:
定义一个数组 char str_tmp;
sprintf(str_tmp,"%.2f",Ufloat);//使用格 ...
谢谢你的回复,可以使用.麻烦看一下图片第3行有2个小数点,语法怎么改一下与上面的格式一致呢?
lao4jiadian 发表于 2024-11-10 16:59
谢谢你的回复,可以使用.麻烦看一下图片第3行有2个小数点,语法怎么改一下与上面的格式一致呢?
...
看起来像是你的显示数组缓存没有清空的问题?
留下了上一次显示的数据的一部分
或者请更加详细的描述你的问题,例如贴出实际的部分代码或者描述如何操作产生的这个现象? 王昱顺 发表于 2024-11-10 17:01
看起来像是你的显示数组缓存没有清空的问题?
留下了上一次显示的数据的一部分
或者请更加详细的描述你的 ...
谢谢你的提示,是数据刷新了没有清屏,现在已经可以了
char* float_to_str(float num, char* buffer, int precision) {
if (num < 0) {
*buffer++ = '-';
num = -num;
}
// 处理整数部分
int integer = (int)num;
float decimal = num - integer;
// 转换整数部分
char* p = buffer;
if (integer == 0) {
*p++ = '0';
} else {
char temp;
int i = 0;
while (integer) {
temp = integer % 10 + '0';
integer /= 10;
}
while (i > 0) {
*p++ = temp[--i];
}
}
// 处理小数部分
if (precision > 0) {
*p++ = '.';
while (precision--) {
decimal *= 10;
int digit = (int)decimal;
*p++ = digit + '0';
decimal -= digit;
}
}
*p = '\0';
return buffer;
}
页:
[1]