经常要用到将输入的字符串数字转为double,特写了一个函数,供以后直接调用。
//string to double
double StringToDouble(char *str)
{
int i=0;
int integer=0; //the integer part
double decimals=0.0; //the decimals part
int count=0; //the digit of the decimals
int signFlag=1;
if(str[i]=='-')
{
signFlag=-1;
i++;
}
while(str[i]!='\0' && str[i]!='.') //if not end and not the dot
{
integer=integer*10+(str[i]-'0');
i++;
}
if(str[i]=='\0')
return double(signFlag*integer);
i++;
while(str[i]!='\0')
{
count++;
decimals=decimals*10+(str[i]-'0');
i++;
}
cout<<count<<endl;
for(int j=0;j<count;j++)
decimals/=10;
return double(signFlag*((integer)+decimals));
}