关于字符串转化为数字的问题
题目是写一个double类型的字符串转为数字的函数我的代码是程序代码:
#include<stdio.h> bool isdigit(char n){ int k; k=n; if(k>=0&&k<=9) return true; else return false; } bool isspace(char n){ if(n==' ') return true; else return false; } double atof(char s[]){ double val,power; int i,sign; for(i=0;isspace(s[i]);i++); sign=(s[i]=='-')?-1:1; if(s[i]=='+'||s[i]=='-') i++; for(val=0.0;isdigit(s[i]);i++) val=10.0*val+(s[i]-'0'); if(s[i]=='.') i++; for(power=1.0;isdigit(s[i]);i++){ val=10.0*val+(s[i]-'0'); power*=10; } return sign*val/power; } int main(){ printf("%d",atof("123.123")); }但输出为0,不知道为什么?