您的位置:首页 > 其它

将串口接收到的字符串转化为数值(包含小数)

2016-05-09 14:02 453 查看
串口接收到的一般都为字符串,常见的函数sscanf()只能转化整数型字符串,对于浮点型字符串则不行。

该函数实现将浮点型字符串转化为相应的数值(整数,浮点数据均可)

float SPRTODATA(u8 *p) //将字符串转化为数据(包含小数)
{
u16 i=0,j=0,t=0;
double temp=0;
for(i=0;i<LEN;i++)
{
if(p[i]=='.') //判断小数点存在的位置
{
t=1;  //小数点存在标志
j=i;  //记下小数点存在的位置
}
else
{
if(t) //如果在小数点后面
{
temp=(double)(p[i]-'0')/pow(10,(i-j))+temp; //改为小数
}
else //在小数点前面
{
temp=(double)(p[i]-'0')+temp*10;
}
}
}
return temp;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: