これは浮動小数点精度と呼ばれるものだと思います。ほとんどすべてのプログラミング言語とデータベースで見つけることができます。これは、データがある程度の精度でのみ保存され、実際には 8.31 として設定されているためです。 おそらく 8.31 ではありません ただし、たとえば 8.31631312381813 そして、それを乗算して ceil すると、異なる値が表示される場合があります。
SQL サーバーのドキュメント ページ あなたは読むことができます:
他のデータベース システムにも同じ問題が存在します。たとえば、mysql Web サイト あなたは読むことができます: