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 展开
例如:char a[10]; a="12.567"; double b;
自己编写一个double char2num(char *s);函数
使b的值为12.567 展开
3个回答
展开全部
那就自己一个位一个位的算啊。
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;
}
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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double char2num(char *s)
{
double b = atof(s);
return b;
}
没看清楚。。我用库函数了。。。
{
double b = atof(s);
return b;
}
没看清楚。。我用库函数了。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询