Exercice 10.34
#include <ctype.h>
#include <math.h>
double CH_DOUBLE(char *CH)
{
/* Variables locales */
double N; /* résultat numérique */
int SIGNE; /* signe de la valeur rationnelle */
int DEC; /* positions derrière la virgule */
/* Initialisation des variables */
N = 0.0;
SIGNE = 1;
/* Traitement du signe */
if (*CH=='-') SIGNE = -1;
if (*CH=='-' || *CH=='+') CH++;
/* Positions devant le point décimal */
for ( ; isdigit(*CH); CH++)
N = N*10.0 + (*CH-'0');
/* Traitement du point décimal */
if (*CH=='.') CH++;
/* Traitement des positions derrière le point décimal */
for (DEC=0; isdigit(*CH); CH++)
{
N = N*10.0 + (*CH-'0');
DEC++;
}
/* Calcul de la valeur à partir du signe et */
/* du nombre de décimales. */
return SIGNE*N/pow(10,DEC);
}
Feedback - Copyright © 1993,1996,1997 F.Faber