{
//char str[20] = “sd sdf32.47e+2df”;
char str[20] = “sd sdf32.47e2df”;
}
{
char flag = 0; //表示正数
double res = 0.0;
double d = 10.0;
int e = 0;
while(*str != ‘\0’)
{
if( !(*str >= ‘0’ && *str <= '9')) //找到字符串中的第一个数字
{
str++;
continue;
}
if(*(str-1) == ‘-‘)
{
flag = 1; //表示是一个负数
}
while(*str >= ‘0’ && *str <= '9')
{
res = res *10.0 + (*str – ‘0’);
str++;
}
if(*str == ‘.’)
{
str++;
}
while(*str >= ‘0’ && *str <= '9')
{
res = res + (*str – ‘0’)/d;
d = d*10;
str++;
}
if(*str == ‘e’ || *str == ‘E’)
{
str++;
if(*str == ‘+’)
{
str++;
while(*str >= ‘0’ && *str <= '9')
{
e = e*10 + (*str – ‘0’);
str++;
}
while(e>0)
{
res = res*10;
e–;
}
}
if(*str == ‘-‘)
{
str++;
while(*str >= ‘0’ && *str <= '9')
{
e = e*10 + (*str – ‘0’);
str++;
}
while(e>0)
{
res = res/10;
e–;
}
}
if(*str >= ‘0’ && *str <= '9')
{
while(*str >= ‘0’ && *str <= '9')
{
e = e*10 + (*str – ‘0’);
str++;
}
while(e>0)
{
res = res*10;
e–;
}
}
}
}
}
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220821.html原文链接:https://javaforall.net
