#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); }