--- rpl/src/types.c 2013/02/27 17:11:46 1.57 +++ rpl/src/types.c 2013/03/16 11:31:41 1.58 @@ -3547,21 +3547,13 @@ recherche_type(struct_processus *s_etat_ integer8 conversion_entiere; real8 conversion_reelle; - if (sscanf((*s_etat_processus).instruction_courante, "%lg", - &conversion_reelle) != 1) - { - (*s_etat_processus).erreur_execution = d_ex_syntaxe; - } - if (sscanf((*s_etat_processus).instruction_courante, "%lld", &conversion_entiere) != 1) { (*s_etat_processus).erreur_execution = d_ex_syntaxe; } - if (abs(nextafter(conversion_reelle, conversion_entiere) - - conversion_reelle) >= abs(conversion_reelle - - conversion_entiere)) + if (errno != ERANGE) { (*s_objet).type = INT; @@ -3580,6 +3572,12 @@ recherche_type(struct_processus *s_etat_ } else { + if (sscanf((*s_etat_processus).instruction_courante, + "%lg", &conversion_reelle) != 1) + { + (*s_etat_processus).erreur_execution = d_ex_syntaxe; + } + (*s_objet).type = REL; element = malloc(sizeof(real8));