码迷,mamicode.com
首页 > 其他好文 > 详细

字符串转换成浮点数

时间:2021-01-11 10:28:36      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:def   define   oat   fine   int   返回   +=   转换   ble   

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

字符串转换成浮点数

标签:def   define   oat   fine   int   返回   +=   转换   ble   

原文地址:https://www.cnblogs.com/shinwind-123/p/14246557.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!