字符串转换成浮点数
作者:互联网
double string_to_float(uint8_t *str)
{
uint8_t i,j,k,negative=0;
#define s_temp str
double result=0.0,result_1=0.0;
for(i=0;i<10;i++)
{
j=str[i];
if(j==0||((j<'0'||j>'9')&&(j!='.')&&(j!='-')))break;
}
k=j=i; //数值的个数
for(i=0;i<j;i++) //查找小数点的位置,结束后小数点位于第i+1位
{
if(s_temp[i]=='.')break;
}
for(j=0;j<i;j++)
{
if(s_temp[j]=='-') {negative=1;continue;}
result = result*10+(s_temp[j]-'0');
}
j++; //加1后j=i+1,即小数点的位置
i=j; //第一个小数的位置
for(; j<k; j++)
{
if(s_temp[j]<'0'||s_temp[j]>'9')break; //非法字符,返回
result_1 = result_1*10+(s_temp[j]-'0');
}
for(j=0; j<(k-i); j++)
{
result_1 *= 0.1;
}
result += result_1;
if(negative)
{
result = -result;
}
return result;
}
标签:转换成,temp,0.0,浮点数,negative,break,result,str,字符串 来源: https://www.cnblogs.com/shinwind-123/p/14246557.html