32Fermer34
PpHdLe 12/08/2016 à 19:27
Uther (./29) :
A priori c'est correct si on part du principe que ceil(7,0000000000000009) fait bien exactement 8.
Mais ce n'est pas ce que j'ai donné comme entrée au système embarrassed

On pourrait éventuellement dire que ça fait 8.0 pour signaler que le résultat provient d'une valeur approchée. Mais si on fait un ceil, c'est généralement parce que l'on veut retomber sur des valeurs exactes et au final ça ne changerait pas l’écart.Bref en mathematica comme en programmation, les flottants c'est le bordel, et mieux vaux ne pas les utiliser à mois d'y être contraint et de savoir exactement ce que l'on fait.
Les flottants ont des règles très précises.
Zerosquare (./21) :
Même parmi mes collègues développeurs, la majorité comprend très mal voire pas du tout le fonctionnement des nombre flottants binaires. Alors si le profil des utilisateurs est plutôt orienté mathématique il y a fort a parier qu'il ne comprendront pas ce qui se passe.
Le problème est juste de comprendre que le nombre en représentation décimale est arrondi en représentation flottante avant même toute opération sur le nombre. Et il faut savoir les nombres qui sont représentés exactement. Après çà ce n'est pas très compliqué.
Kevin Kofler (./31) :
Si on calcule avec des flottants binaires, on peut toujours avoir ce problème. La seule manière de l'éviter est de calculer tout en BCD comme le fait AMS.
Pas forcément. Et de toute façon, même avec les BCD, tu ne peux pas représenter exactement les division par 3. Ce qu'il faut surtout faire c'est maitriser l'erreur commise et sa propagation.