簡體   English   中英

SQL Server 2008:為什么這輪不能到兩位小數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM