C++任意输入一个字符串型数,如1.23,如何将其转化为浮点数

2024-11-25 14:34:19
推荐回答(3个)
回答1:

0对应的ascii是40 你输入后减去40就是你得到的数 然后根据输入顺序和小数点 分别每次乘以0.1就行了

回答2:


#include
#include
double sTof(char *s){
       double s1,s2;
       int i=0;
       s1 = 0;
       while(s[i]!='.'&&s[i] != 0){
           s1 = s1*10 +s[i] - '0';
           i +=1;
       }
       if(s[i] == 0) return s1;
       i += 1;
       double k = 0.1;
       s2 = 0;
       while(s[i] != 0){
           s2 = s2 + k*(s[i] - '0');
           k = k*0.1;
           i += 1;
       }
       return s1+s2;
}
int main(void){
    char s[4096];
    while(gets(s)){
    printf("%lf\n",sTof(s));
    }
    system("pause");
    return 0;
}
运行结果如下:

 

回答3:

有函数 atof ,