|
[WD5.5] bizarrerie avec les reels peut etre sous WD8 (à voir) |
Iniciado por pmoune, 20,oct. 2004 20:10 - 1 respuesta |
| |
| | | |
|
| |
Publicado el 20,octubre 2004 - 20:10 |
Je rencontre 2 phénomènes tres etrange :
1 - Je travaille avec des nombres petits qui sont déclarées comme reel dans le code. de tant en temps, Windev me les met en notation scientifique. C'est a dire que si je regarde ma variable sous le debogeur, elle ne s'affiche pas comme 0.008 mais comme 8e-02. si je fais alors par exemple a*b et que a=5 et b=8e-02, et bien j'ai une erreur de syntaxe.
2 - Problème beaucoup plus grave et qui se produit de facon aleatoire. Soit dans un fichier 2 champs reels. Lc.Qte et Lc.QteL ces deux champs sont renseignés dans une table de saisie avec comme masque 999 999.99 on ne peut donc pas saisir plus de 2 decimales. une fois stocké dans le fichier et rappelé pour traitement voici ce que j'ai de temps en temps (Une fois toutes les 200 ajouts dans le fichier)
Lc.Qte1 est egale à 178.5 Lc.Qte1L est egal à 178.5 Lc.Qte1-Lc.Qte1L donne 125e-05 et pas 0
Mieux !
Lc.Qte1*1000000 donne 178500000 Lc.Qte1L*1000000 donne 178500000
Lc.Qte1*1000000-Lc.Qte1L*1000000 donne 0.125 !!!!!.
Je rappelle que ces champs sont saisies dans une table avec 2 decimales et ne sont pas issus d'un calcul genre HT vers TTC. D'ou vinnent ces decimales !!!
Une idée, car je vais mal finir avec mon client.
Merci |
| |
| |
| | | |
|
| | |
| |
Publicado el 21,octubre 2004 - 10:55 |
Ton problème n'a rien à voir avec windev. Il s'agit de la méthode de stockage des réels. Il faut systématiquement travailler sur ce type de données en faisant des arrondis, tes calculs seront alors justes. |
| |
| |
| | | |
|
| | | | |
| | |
|