• [^] # Re: Quel compilateur sur quelle plateforme ?

    Posté par (site web personnel) . En réponse au message Probleme de précision. Évalué à 2.

    sous Intel: gcc4.0.1 sous Linux 2.6.12 (Mandriva 2006 pour i586) et gcc3.4.1 sous Linux 2.6.8 (Mandrake 10.1)
    sous ppc: gcc3.4.1 sous Linux 2.4.xx, c'est une mandrake 10.1 installee dans un chroot de mandrake 9.1 (c'est tordu, mais c'est parce que la mandrake 10.1 que j'avais installee a cote de la 9.1 sur mon cube ne parvenait pas a fonctionner avec les peripheriques ubs style clavier et souris).

    En fait, je viens aussi de trouver cet article sur le meme genre de sujet:
    http://www2.hursley.ibm.com/decimal/

    Comme le dit ton second lien, il y a un probleme fondamental a faire de l'arithmetique decimale pour des chiffres [1;0]: la representation binaire ne correspond pas a un chiffre parfaitement precis (ie: nombre limites de chiffres significatifs). Donc avec mes floor(), je ne parviens pas a retrouver ce a quoi je m'attend.

    La solution, c'est de faire (un peu comme dit dans ton dernier lien): R=R*1.001 . Puisque ensuite j'utilise une notation style DD.10^E, ajouter un millieme est largement suffisant (ce millieme disparait des que j'ai calcule DD et E) et a l'avantage d'etre tres simple. (la solution "theorique" proposee dans ton lien suppose que l'on connait deja la precision souhaitee, chose que je ne connais pas a ce point puisque je la cherche...)

    En tout les cas, merci beaucoup et bravo !

    Mathias
    PS: par contre, le miracle c'est que mon powerpc ait pu passer mes cas tests sans problemes... a creuser lundi!