您的位置:首页 > 编程语言 > C语言/C++

C++实现atof()--string to double

2014-09-09 21:18 316 查看
#include<iostream>
#include<string>
#include<assert.h>
using namespace std;

double my_atof(string s)
{
	assert(s.size()!=NULL);
	
	int i=0;
	double dou_num=0;

	double t=10;
	bool fh_=false;

	if(s[i]=='-')
	{
		fh_=true;
        i++;
	}
	while(s[i]!='\0')
	{
		if(s[i]=='.')			
		{
			i++;
			break;			
		}
		dou_num=dou_num*10+s[i]-'0';
		i++;		
	}
	while(s[i]!='\0')		
	{
		dou_num=dou_num+(s[i]-'0')/t;			
		t*=10;
		i++;
	}	

	if(fh_)
		return -1.0*dou_num;
	else
		return dou_num;
}

int main()
{
	string s;
	cin>>s;

	double sum;
	sum=my_atof(s);
	cout<<sum<<endl;

	system("pause");
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: