version 1.3, 2010/01/29 16:49:23
|
version 1.4, 2010/02/08 19:26:32
|
Line 3435 formateur_reel(struct_processus *s_etat_
|
Line 3435 formateur_reel(struct_processus *s_etat_
|
logical1 i50; |
logical1 i50; |
|
|
long correction; |
long correction; |
|
long dernier_chiffre_significatif; |
long exposant; |
long exposant; |
long longueur_utile; |
long longueur_utile; |
long longueur_utile_limite; |
long longueur_utile_limite; |
Line 3567 formateur_reel(struct_processus *s_etat_
|
Line 3568 formateur_reel(struct_processus *s_etat_
|
} |
} |
} |
} |
|
|
|
// Test portant sur le nombre de chiffres significatifs dans |
|
// le cas du format STD pour que 1.2E-15 apparaisse en notation |
|
// SCI car il y a une perte de précision dans l'affichage. |
|
|
|
if ((strcmp(mode, "STD") == 0) && (type == 'R')) |
|
{ |
|
if (abs(*((real8 *) valeur_numerique)) < 1) |
|
{ |
|
dernier_chiffre_significatif = -exposant; |
|
sprintf(tampon, ".%f", mantisse); |
|
|
|
ptr = &(tampon[strlen(tampon) - 1]); |
|
|
|
while((*ptr) != '.') |
|
{ |
|
if ((*ptr) != '0') |
|
{ |
|
dernier_chiffre_significatif++; |
|
} |
|
|
|
ptr--; |
|
} |
|
} |
|
else |
|
{ |
|
dernier_chiffre_significatif = 0; |
|
} |
|
} |
|
else |
|
{ |
|
dernier_chiffre_significatif = 0; |
|
} |
|
|
if ((strcmp(mode, "SCI") == 0) || |
if ((strcmp(mode, "SCI") == 0) || |
((strcmp(mode, "STD") == 0) && ((exposant > |
((strcmp(mode, "STD") == 0) && ((exposant > |
longueur_utile_limite) || |
longueur_utile_limite) || (dernier_chiffre_significatif > 15) || |
(exposant < -longueur_utile_limite))) || |
(exposant < -longueur_utile_limite))) || |
((strcmp(mode, "FIX") == 0) && |
((strcmp(mode, "FIX") == 0) && |
((exposant >= longueur_utile_limite) || |
((exposant >= longueur_utile_limite) || |
Line 3682 formateur_reel(struct_processus *s_etat_
|
Line 3716 formateur_reel(struct_processus *s_etat_
|
} |
} |
} |
} |
} |
} |
|
|
strcpy(chaine, tampon); |
strcpy(chaine, tampon); |
} |
} |
|
|