对负数无效。
double stringToDouble(string a)
{
double sum=0,sum1=0;
int dian=a.find(".",0);
//是整数
if(dian==-1)
{
for(int i=0;a[i];i++)
{
sum=sum*10+a[i]-'0';
}
}
//是小数
else
{
for(int i=0;i<dian;i++)
{
sum=sum*10+a[i]-'0';
}
int wei=0;
for(int i=dian+1;a[i];i++)
{
sum1=sum1*10+a[i]-'0';
wei--;
}
sum1=sum1*pow(10,wei);
sum=sum+sum1;
}
return sum;
}
另外,一个对负数有效的方法:
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a = "0072";
double res;
stringstream ss;
ss << a;
ss >> res;
cout<<res;
return 0;
}
输出72;