#include <stdio.h>
#include <string.h>
float my_pow(float base,int n)
{
float ret=1.0;
while (n--)
{
ret*=base;
}
return ret;
}
//成功返回0,错误返回-1,parr必须以\0结尾
int my_atof(char* parr,float* pf)
{
char *ptmp=parr;
char flag=0;
char i=0;
float ftmp=0.0;
if (*ptmp=='-')
{
flag=1;
ptmp++;
}
while (*ptmp!='.')
{
if(('0'<*ptmp)&&(*ptmp<'9'))
{
ftmp=ftmp+*ptmp-'0';
ftmp*=10;
ptmp++;
}
else
return -1;
}
*pf=ftmp/10;
ftmp=0.0;
ptmp++;
while(*ptmp)
{
if(('0'<*ptmp)&&(*ptmp<'9'))
{
ftmp+=(*ptmp-'0')*my_pow(0.1,++i);
ptmp++;
}
else
return -1;
}
*pf+=ftmp;
if (flag==1)
*pf=-*pf;
return 0;
}
my_atof()函数
最新推荐文章于 2022-01-20 18:50:26 发布