#include<iostream.h>
float my_atof(char *str)
{int len = 0,index = -1;
float sum = 0,num = 10;
if(*str == '-')
{
cout<<'-';
str++;
for(;'\0' != (*str);str++,len++)
{
if(*str == '.')
{
index = len;
}
if(index!=-1)
{
num/=10;
}
}
str -= 1;
while(len--)
{
if(*str != '.')
{
sum = sum + ((*str) - '0')*num;
}
if(*str-- == '.')
{
num/=10;
}
num *= 10;
}
}
else
{
for(;'\0' != (*str);str++,len++)
{
if(*str == '.')
{
index = len;
}
if(index!=-1)
{
num/=10;
}
}
str -= 1;
while(len--)
{
if(*str != '.')
{
sum = sum + ((*str) - '0')*num;
}
if(*str-- == '.')
{
num/=10;
}
num *= 10;
}
}
return sum;
}
int main()
{
char *s = "-6.2549";
char *r = "489.54";
cout<<my_atof(s)<<endl;
cout<<my_atof(r)<<endl;
return 0;
}