Re : comportement bizarre de la cellule
Re
en numérique les nombres sont codés avec des 1 et des 0 et leur longueur de codage est limitée
exemple sur 8 bits pour les petits c'est assez simple
0 --> 00000000
1 --> 00000001
2 --> 00000010
...
255 ->11111111
on travaille en "puissance de 2" : Le 1 de droite vaut 1, et en se décalant vers la gauche, 2, 4, 8, 16, 32...
pour un nombre à virgule cela se complique le codage doit indiquer la virgule et cela correspond à une division par 10, 100....
mais sur mon exemple 8 bits (simplifié), on n'a toujours que 8 bits :
imagine que l'on utilise les 3 bits de droite pour indiquer cette virgule (000 = pas de virgule, 001 (diviser par 10), 010 (diviser par 100), 100 (diviser par 1000)
cela correspond à la notation scientifique des calculatrices
il reste alors les 5 bits de gauche pour coder, donc de 00000 (0) à 11111 (31)
10000 100 représente 16/1000 = 0.016
10001 100 représente 17/1000 = 0.017
tu ne peux pas coder 0.0161 cela dépasse les limites du codage. Sur Excel c'est la même chose mais comme on a beaucoup plus que 8 bits l'erreur reste infime mais il y a possibilité d'erreur. C'est pour cela qu'il faut quelquefois faire attention à l'ordre dans lequel on enchaine des opérations * et / car quand on dépasse la capacité d'un codage normal, il y aura approximation
je reprends mon exemple précédent sur 8 bits, je veux faire 0.001*10/10 soit 0.001 attendu
Si je commence par multiplier, (0.001*10)/10, cela fonctionnera (calcul entre parenthèses prioritaire)
Si je commence par diviser (0.001/10)*10 je passe en dessous de mes capacités de codage et au lieu de 0.0001 je vais avoir en intermédiaire 0.000 que je multiplie par 10 ce qui donne 0.000
Pas simple d'expliquer cela précisément, j'espère t'avoir donné une bonne idée du principe