PostgreSQL の除算演算子: 整数の切り捨てと浮動小数点計算を理解する
PostgreSQL では、除算演算 (/) が予期しない結果を引き起こす可能性があります整数値を扱う場合。不正な計算を回避するには、整数の除算の基本的な動作を理解することが重要です。
次のクエリを考えてみましょう:
SELECT dev_cost / sell_cost FROM software
ここで、dev_cost は 16000、sell_cost は 7500 です。結果は次のようになると予想されます。 3 ですが、2 が返されます。これは、整数の除算により小数部分が切り捨てられるためです。 result.
目的の値を取得するには、少なくとも 1 つの値を浮動小数点型 (10 進数など) にキャストするか、:: 演算子を使用してその場で変換する必要があります。
SELECT CAST(dev_cost AS DECIMAL) / sell_cost FROM software
SELECT dev_cost::DECIMAL / sell_cost FROM software
これらのクエリは、実際の除算である 2.133 を返します。 result.
さらに、ceil() 関数を使用して結果を最も近い整数に切り上げることができます。
SELECT CEIL(dev_cost::DECIMAL / sell_cost) FROM software
このクエリは、ソフトウェアの必要な量である 3 を返します。開発コストを回収するため。
除算演算を実行するときはこの動作に注意し、正確性を確保するために適切なデータ型とキャストを使用することが重要です。計算。
以上がPostgreSQL は整数の除算をどのように処理し、正確な結果を得るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。