Posté par
Antoine() le 22/12/2007 à 17:09. (lien). Évalué à 2.
Mes derniers égarements en c# m'ont permis de voir que pour les calculs en virgule flottante, 10 000 * .196 (la TVA) donnait des chiffres non nuls après la 5éme décimale par exemple
Ce n'est probablement pas les calculs qui sont buggés. Le type virgule flottante à représentation interne binaire n'est pas adapté à la représentation exacte des décimaux. Soit tu te satisfais d'une troncation à l'affichage (en utilisant la syntaxe de format qui va bien selon le langage), soit tu utilises un type decimal exact (comme il en existe pour divers langages).
3) parfois quand on voit comment les base de données sont douées en math on ferait mieux de les faire travailler à la place de nos langages de haut niveaux qui massacrent les décimales.
Là aussi c'est une question de type utilisé. Si tu choisis un FLOAT plutôt qu'un DECIMAL sous MySQL par exemple, tu auras les mêmes problèmes qu'en C# ou ailleurs.
Re: Perl, quel utilisation ?
Mes derniers égarements en c# m'ont permis de voir que pour les calculs en virgule flottante, 10 000 * .196 (la TVA) donnait des chiffres non nuls après la 5éme décimale par exemple
Ce n'est probablement pas les calculs qui sont buggés. Le type virgule flottante à représentation interne binaire n'est pas adapté à la représentation exacte des décimaux. Soit tu te satisfais d'une troncation à l'affichage (en utilisant la syntaxe de format qui va bien selon le langage), soit tu utilises un type decimal exact (comme il en existe pour divers langages).
3) parfois quand on voit comment les base de données sont douées en math on ferait mieux de les faire travailler à la place de nos langages de haut niveaux qui massacrent les décimales.
Là aussi c'est une question de type utilisé. Si tu choisis un FLOAT plutôt qu'un DECIMAL sous MySQL par exemple, tu auras les mêmes problèmes qu'en C# ou ailleurs.
[ Répondre ]