SELECT
ROUND(WeightInOZ / 16, 2)as WeightInLbs
FROM
Inventory
我得到的结果看起来像整数1,2等
答案 0 :(得分:8)
尝试将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
答案 1 :(得分:5)
问题在于:
WeightInOZ / 16
由于您正在处理两个整数,因此SQL Server会截断余数,因此没有可用于舍入的小数组件。
您要做的是强制它执行浮点(或十进制)除法。最简单的方法是将16
更改为16.0
。
SELECT
ROUND(WeightInOZ / 16.0, 2)as WeightInLbs
FROM
Inventory