发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名
[问答] 为什么sprintf函数转换浮点型数据会不对?
165 数组 函数 sprintf 数据
分享
举个例子:
C51中拼装一个数组
sprintf(buf, "%.1f-%.1f-%.1f-%.1f", 22.2, 22.2, 22.2, 22.2);
我想这个数组拼装之后的结果应该为22.2-22.2-22.2-22.2
但是通过串口发出来一看,是:22.2-22.2-8.1-0.0
后面两个浮点型数据为什么不对?
0
2019-10-17 22:05:36   评论 分享淘帖 邀请回答
1个回答
又写了一个函数,实现了转化多个浮点型数据(主要是因为单片机内存太小,在电脑上根本没必要)
void my_sprintf(unsigned char *buf, float T, float L, float H, int R)
{
    unsigned char i;
    unsigned char xdata T_buf[8] = {0};
                unsigned char xdata L_buf[8] = {0};
                unsigned char xdata H_buf[8] = {0};
                unsigned char xdata R_buf[8] = {0};
               
                sprintf(T_buf, "T%.1f-", T);
                sprintf(L_buf, "L%.1f-", L);
                sprintf(H_buf, "H%.1f-", H);       
                sprintf(R_buf, "R%d-", R);               
               
                sprintf(buf,"%s%s%s%s", T_buf, L_buf, H_buf, R_buf);
               
}
2019-10-18 09:35:19 评论

举报

只有小组成员才能发言,加入小组>>

64个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /10 下一条

快速回复 返回顶部 返回列表