Les calcul en DECIMAL posent exactement les mêmes problèmes.
Par DECIMAL tu veux parler d'arithmétique exacte en virgule fixe? La situation est différente parceque en arithmétique exacte l'addition est associative et commutative (comme en cours d'algèbre) mais ce n'est pas le cas pour les opérations en virgule flottante. Ainsi, si deux établissements bancaires font leur bilan en virgule flottante, ils peuvent ne pas arriver au même résultat si ils ne font pas leurs opérations dans le même ordre. (En fait ils peuvent aussi arriver à un résultat différent même s'ils font les calculs dans le même ordre, parceque certains circuits doublent la précision des nombres en virgule flottante en interne – pour traiter correctement la multiplication – en bordant les nombres en entrée par un contenu aléatoire.)
Les conventions d'arrondi que tu évoques ne s'appliquent probablement qu'au calcul d'intérêt, pas aux calculs des bilans.
Enfin c'est un peu hors-sujet mais ce n'est pas très connu alors j'en profite pour le préciser: beaucoup d'implémentations de fonctions mathématiques (comme l'exponentielle ou quelques fonctions moins connues comme Bessel ou gamma faisant partie de l'attirail de base pour le calcul scientifique) ne sont correctes que jusqu'à l'avant dernier bit du résultat et le dernier bit n'est pas garanti. C'est une petite concession en précision qui permet de gagner du temps. Pour certaines fonctions on abandonne même les 3 derniers bits. Bien-sûr il y a aussi des implémentations avec des garanties de précision plus grandes. Bref, c'est tout un petit monde en soi! :)
[^] # Re: Le point clef est le calcul scientifique, pas la finance
Posté par Michaël (site web personnel) . En réponse au journal SQL Decimal vs Double. Évalué à 4.
Par DECIMAL tu veux parler d'arithmétique exacte en virgule fixe? La situation est différente parceque en arithmétique exacte l'addition est associative et commutative (comme en cours d'algèbre) mais ce n'est pas le cas pour les opérations en virgule flottante. Ainsi, si deux établissements bancaires font leur bilan en virgule flottante, ils peuvent ne pas arriver au même résultat si ils ne font pas leurs opérations dans le même ordre. (En fait ils peuvent aussi arriver à un résultat différent même s'ils font les calculs dans le même ordre, parceque certains circuits doublent la précision des nombres en virgule flottante en interne – pour traiter correctement la multiplication – en bordant les nombres en entrée par un contenu aléatoire.)
Les conventions d'arrondi que tu évoques ne s'appliquent probablement qu'au calcul d'intérêt, pas aux calculs des bilans.
Enfin c'est un peu hors-sujet mais ce n'est pas très connu alors j'en profite pour le préciser: beaucoup d'implémentations de fonctions mathématiques (comme l'exponentielle ou quelques fonctions moins connues comme Bessel ou gamma faisant partie de l'attirail de base pour le calcul scientifique) ne sont correctes que jusqu'à l'avant dernier bit du résultat et le dernier bit n'est pas garanti. C'est une petite concession en précision qui permet de gagner du temps. Pour certaines fonctions on abandonne même les 3 derniers bits. Bien-sûr il y a aussi des implémentations avec des garanties de précision plus grandes. Bref, c'est tout un petit monde en soi! :)