Мисля, че това се нарича плаваща точност. Можете да го намерите в почти всички езици за програмиране, както и в базата данни. Това е така, защото данните се съхраняват само с известна точност и всъщност това, което сте задали като 8.31
вероятно не е 8.31
но например 8.31631312381813
и когато го умножите и ceil, това може да доведе до появата на различна стойност.
На страница с документация за SQL сървър можете да прочетете:
В други системи за бази данни съществува същият проблем. Например на уебсайт на mysql можете да прочетете: