Ich denke, das nennt man Float-Präzision. Sie finden es in fast allen Programmiersprachen und auch in Database. Dies liegt daran, dass Daten nur mit einiger Genauigkeit gespeichert werden und tatsächlich das, was Sie als 8.31
festlegen ist wahrscheinlich nicht 8.31
aber zum Beispiel 8.31631312381813
und wenn es mit ceil multipliziert wird, kann dies dazu führen, dass ein anderer Wert angezeigt wird.
Auf der SQL-Server-Dokumentationsseite Sie können lesen:
In anderen Datenbanksystemen besteht das gleiche Problem. Zum Beispiel auf der mysql-Website Sie können lesen: