Ce n'est pas la peine d'aller chercher une erreur dans l'OS ou quoi que ce soit.
Tous les calculs menés sur une calculette qui n'a pas de moteur de calcul exact sont approchés. Par conséquent, il y a DANS TOUS LES CAS une petite erreur sur le résultat.
Ici, la valeur calculée de
$mathjax$\log_2(16)$mathjax$
est très proche de sa valeur réelle, à savoir 4, ce qui explique le résultat 4 affiché à la première ligne, mais il lui est très légèrement inférieur.
Par conséquent, la fonction
int
, qui calcule sa partie entière, donne le nombre entier immédiatement inférieur ou égal au résultat trouvé... à savoir 3.
Cela arrive très probablement dans la moitié des calculs qui sont censés donner un résultat entier mais en passant par un calcul avec des réels. Par exemple,
int(sin(4π))
renvoie -1 au lieu de 0.