keil5 STM32 浮点数转字符串跑飞

在keil中如果用如下函数可以实现浮点数转换为字符串的功能,但是有时候会跑飞程序。

void num2char(unsigned char *str, float num1 )

{
int high;//float_????  
float low;//float_???? 
float num=num1;
int n=0;
char ch[8];
int i;
high=(int)num;
low=num-high;
if(high==0)
*str++='0';
while(high>0)
{
ch[n++]='0'+high%10;
high=high/10;
}
for(i=n-1;i<=0;i--)
{
*str++=ch[i];
}
num-=(int)num;
float tp=0.1;
*str++='.';
while(num>0.001)
{
num-=tp*(int)(low*10);
tp/=10;
*str++='0'+(int)(low*10);
low=low*10.0-(int)(low*10);
}
*str='\0';
}
展开阅读全文

没有更多推荐了,返回首页