字符串转换成浮点数

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;
}

上一篇:BoxColliders does not support negative scale or size.


下一篇:高斯白噪声的添加