51单片机中我想把float类型转换为char[]数组。例如float a=1.1.转换为数组是char *b={49,47,49}
因为1.1表示成字符为{0x31,0x2e,0x39},最好能互相转换,。一个字符串数组str="12.3"转换为floata=12.3.最好有C程序,标准的C不能使用其...
因为1.1表示成字符为{0x31,0x2e,0x39},最好能互相转换,。一个字符串数组str="12.3"转换为float a=12.3.最好有C程序,标准的C不能使用其他函数。
展开
展开全部
1、不知道你是用来做什么的,可以采用sprintf()格式化函数将数据格式为字符串,如要将Float a=1.1转换,则设定一个数组tmp(3)
length=sprintf(tmp,"%1.1f",a)
这里length会等于3,tmp={0x31,0x2e,0x31}
2、对于字符串向float转换,可先将数字都取出,记住取出小数后字符的个数n,取出的结果除以10^n
length=sprintf(tmp,"%1.1f",a)
这里length会等于3,tmp={0x31,0x2e,0x31}
2、对于字符串向float转换,可先将数字都取出,记住取出小数后字符的个数n,取出的结果除以10^n
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void change(uchar dat,char *str) //字符串转换
{
char temp[20];
unsigned char i=0,j=0;
i=0;
while(dat)
{
temp[i]=dat%10+0x30;
i++;
dat/=10;
}
j=i;
for(i=0;i<j;i++)
{
str[i]=temp[j-i-1];
}
if(!i) {str[i++]='0';}
str[i]=0;
}
{
char temp[20];
unsigned char i=0,j=0;
i=0;
while(dat)
{
temp[i]=dat%10+0x30;
i++;
dat/=10;
}
j=i;
for(i=0;i<j;i++)
{
str[i]=temp[j-i-1];
}
if(!i) {str[i++]='0';}
str[i]=0;
}
追问
小数部分好像没转换吧,对浮点数取余数,小数点是取不出来的。不过还是谢谢参与。
追答
例如 12.3 你先转换12 再转换3 最后两个字符串相加 就可以了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询