long double atold(char *str)
{
__int64 r = 0;
size_t l = strlen(str);
int flag = 0, count = 1;
for (size_t i = 0; i < l; i++)
{
if (str[i] == '.')
{
flag = 1;
continue;
}
if (flag == 1)
count *= 10;
r = r * 10 + (str[i] - '0');
}
return (long double)r / count;
}
转载:http://zhidao.baidu.com/question/98927145.html