double StrToInt(char *ch)
{
double d = 0;
double d1[50];//分别存储数据的整数与小数部分的数字
double d2[50];
int count1=0;//迭代并记录数组中的元素数
int count2=0;
double db1=0;//整数部分值
double db2=0;//小数部分值
int flag=0;//判断是整数部分还是小数部分
int len=strlen(ch);
int ix,i=0,j;
if(len>0 && ch[0]!='-')//正数的转换
{
for(ix=0;ix {
if(ch[ix]!='.'&& flag==0)//整数部分
{
d1[count1]=(double)(ch[ix]-'0');
count1++;
}
if(ch[ix]=='.')
{
flag=1;
continue;
}
if(flag==1)//小数部分
{
d2[count2]=(double)(ch[ix]-'0');
count2++;
}
}
//整数部分
for(j=count1-1;i {
db1+=d1[i]*pow(10.0,(double)j);
}
//小数部分
for(i=0;i {
db2+=d2[i]/pow(10.0,(double)(i+1));
}
d=db1+db2;
}
else if(len>0 && ch[0]=='-')
{
for(ix=0;ix { //如果迭代到负号则跳过
if(ch[ix]=='-')
{
continue;
}
if(ch[ix]!='.'&& flag==0)
{
d1[count1]=(double)(ch[ix]-'0');
count1++;
}
if(ch[ix]=='.')
{
flag=1;
continue;
}
if(flag==1)
{
d2[count2]=(double)(ch[ix]-'0');
count2++;
}
}
for(j=count1-1;i {
db1+=d1[i]*pow(10.0,(double)j);
}
for(i=0;i {
db2+=(double)d2[i]/pow(10.0,(double)(i+1));
}
d=(-1)*(db1+db2);
}
return d;
}
阅读(944) | 评论(0) | 转发(0) |