Je pense que cela s'appelle la précision flottante. Vous pouvez le trouver dans presque tous les langages de programmation et dans Database également. En effet, les données ne sont stockées qu'avec une certaine précision et en fait ce que vous avez défini comme 8.31
n'est probablement pas 8.31
mais par exemple 8.31631312381813
et lorsque vous le multipliez et que vous le multipliez, cela peut entraîner l'apparition d'une valeur différente.
Sur la page de documentation du serveur SQL vous pouvez lire :
Dans d'autres systèmes de base de données, le même problème existe. Par exemple sur site Web mysql vous pouvez lire :