Когда-то столкнулся с такой проблемой и недолго думая написал код (конечно он не самый лучший и быстрый, но использовать можно):
Код
float __to_float(char* text)
{
char temp[25];
int ppos=-1;
int now=0;
int len=strlen(text);
for (int i=0;i<len;++i)
{
if (text[i]=='.') ppos=i; else
{
temp[now]=text[i];
++now;
}
}
float res;
res=(float)atoi(temp);
if (ppos==-1) return res;
int count=len-ppos-1;
while (count>0)
{
res/=10;
--count;
}
return res;
}