C++中把char数组转化为double

我是一个初学者,不要用库函数,要用自己编写的函数来转化。例如:chara[10];a="12.567";doubleb;自己编写一个doublechar2num(char... 我是一个初学者,不要用库函数,要用自己编写的函数来转化。
例如:char a[10]; a="12.567"; double b;
自己编写一个double char2num(char *s);函数
使b的值为12.567
展开
 我来答
zhjiemm
推荐于2016-01-05 · TA获得超过2643个赞
知道大有可为答主
回答量:1834
采纳率:75%
帮助的人:709万
展开全部
那就自己一个位一个位的算啊。
double char2num(char *s)
{
double d=0;
int i,t=0;

for (i=0;s[i]!=0 ;i++)
{
if(s[i]=='.')
{
t = 10;
}
else
{
if(t==0)
{
d = d*10 + (s[i]-'0');
}
else
{
d = d + (double)(s[i]-'0')/t;
t *=10;
}
}
}
return d;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a6_gesture
2011-10-28 · TA获得超过108个赞
知道小有建树答主
回答量:114
采纳率:0%
帮助的人:90.6万
展开全部
double char2num(char *s)
{
double b = atof(s);
return b;
}
没看清楚。。我用库函数了。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灰色8酷
2011-10-28 · TA获得超过306个赞
知道小有建树答主
回答量:414
采纳率:100%
帮助的人:379万
展开全部
double char2num(char* a){
double temp=0;
for(int i=0;a[i]!='\0';i++){
if(a[i]<='9' && a[i]>='0')temp=(temp<<1)+((int)a[i]+48);
}
return temp;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式