首頁 > 資料庫 > mysql教程 > 為什麼 PostgreSQL 整數除法回傳錯誤結果?

為什麼 PostgreSQL 整數除法回傳錯誤結果?

Linda Hamilton
發布: 2024-12-27 22:58:12
原創
326 人瀏覽過

Why Does PostgreSQL Integer Division Return Incorrect Results?

PostgreSQL 中的除法問題:為什麼除法(/) 傳回不正確的結果

當嘗試在PostgreSQL 中使用整數列計算時,使用者可能會遇到以下問題:遇到意想不到的結果。考慮以下場景:

問題:

名為「software」的表格包含欄位「dev_cost」和「sell_cost」。您想要確定需要銷售多少軟體才能收回 dev_cost。鑑於“dev_cost”為 16000,“sell_cost”為 7500,您期望結果為 3。但是,查詢

select dev_cost / sell_cost from software;
登入後複製

回傳 2。

原因:

PostgresSQL 執行整數除法,這將結果截斷為零。由於「dev_cost」和「sell_cost」都定義為整數,因此結果被截斷為 2。

解:

要得到正確的結果,至少需要一個運算元必須轉換為浮點類型,例如 float 或decimal。這可以使用cast()函數或雙冒號::運算子來實現:

select cast(dev_cost as decimal) / sell_cost from software;
登入後複製

select dev_cost::decimal / sell_cost from software;
登入後複製

或者,您可以使用將結果四捨五入到最接近的整數天花板()函數:

select ceil(dev_cost::decimal / sell_cost) from software;
登入後複製

示範:

[SQLFiddle示範](https://www.sqlfiddle.com/#!17/23da8/1)

以上是為什麼 PostgreSQL 整數除法回傳錯誤結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板