[英]SQL Server 2008: Why won't this round to two decimal places?
SELECT
ROUND(WeightInOZ / 16, 2)as WeightInLbs
FROM
Inventory
我得到的結果看起來像整數1,2等
嘗試將16更改為16.0
SELECT
ROUND(WeightInOZ / 16.0, 2)as WeightInLbs
FROM
Inventory
您看到奇怪的結果,因為它將您的除法結果視為整數而不是小數。 指定.0
告訴sql server將其視為小數。
更新:
如果尾隨的零件嚇到了你,你可以隨時這樣做:
SELECT
CAST(ROUND(WeightInOZ / 16.0, 2) AS NUMERIC(8,2)) as WeightInLbs
FROM
Inventory
問題是這樣的:
WeightInOZ / 16
由於您正在處理兩個整數,因此SQL Server會截斷余數,因此沒有用於舍入的小數組件。
你想要做的是強迫它執行浮點(或十進制)除法。 最簡單的方法是將16
改為16.0
。
SELECT
ROUND(WeightInOZ / 16.0, 2)as WeightInLbs
FROM
Inventory
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.