C编程从入门到实践
上QQ阅读APP看书,第一时间看更新

4.9.4 怎样将带小数点的字符型数据转换成浮点型

怎么将字符型数据“-0.92,344.77”转换成浮点型数据“-0.92,344.77”?其实在C语言中有专门的库函数,它们用于字符串与数字间的转换。当然,也可以自己编程来实现,例如下面的代码。

    #include <stdio.h>
    #include <conio.h>

    int main(void){
          char str[100];
          gets(str);
          double num = 0;
          int i = 0;
          double t = 10;
          while(str[i] ! = '\0')
          {
                if( str[i] >= '0' && str[i] <= '9')
                {
                        if( t == 10)
                        num = num * t + str[i] -48;
                        else
                        {
                              num += ( str[i] -48 ) * t;
                              t = t*0.1;
                        }
                }
                if( str[i] == '.' )
                {
                        t = 0.1;
                }
                i++;
          }
          if( str[0] == '-' )
                num = 0- num;
          printf("%lf\n", num);
          //cout << num << endl;
          return 0;
    }