float char2float(char* ptr)
{
u8* ptrat=NULL;
u8* ptrbt=NULL;
u8 a[4];
float u1;
ptrat=ptr;
ptrbt=ptr;
while(*ptrbt!=46){ptrbt++;xx_point++;}
switch(xx_point)
{
case 1:u1=*ptrat-48;
break;
case 2:a[0]=*ptrat-48;ptrat++;
a[1]=*ptrat-48;
u1=a[0]*10+a[1];
break;
case 3:
a[0]=*ptrat-48; ptrat++;
a[1]=*ptrat-48; ptrat++;
a[2]=*ptrat-48;
u1=a[0]*100+a[1]*10+a[2];
break;
case 4:
a[0]=*ptrat-48; ptrat++;
a[1]=*ptrat-48; ptrat++;
a[2]=*ptrat-48; ptrat++;
a[3]=*ptrat-48;
u1=a[0]*1000+a[1]*100+a[2]*10+a[3];
break;
default:
return 0;
break;
}
ptrbt++;
ptrat+=2;
while(*ptrbt!=38){ptrbt++;point_xx++;}
switch(point_xx)
{
case 1:a[0]=*ptrat-48;
u1=u1+a[0]*0.1;
break;
case 2:a[0]=*ptrat-48;ptrat++;
a[1]=*ptrat-48;
u1=u1+a[0]*0.1+a[1]*0.01;
if(xx_point==1)u1+=0.01;
break;
case 3:
a[0]=*ptrat-48; ptrat++;
a[1]=*ptrat-48; ptrat++;
a[2]=*ptrat-48;
u1=u1+a[0]*0.1+a[1]*0.01+a[2]*0.001;
if(xx_point==3||xx_point==4)u1+=0.001;
break;
}
xx_point=0;
point_xx=0;
return u1;
}