Wil*_*iam 3 sql t-sql sql-server rounding sql-server-2008
SELECT
ROUND(WeightInOZ / 16, 2)as WeightInLbs
FROM
Inventory
Run Code Online (Sandbox Code Playgroud)
我得到的结果看起来像整数1,2等
尝试将16更改为16.0
SELECT
ROUND(WeightInOZ / 16.0, 2)as WeightInLbs
FROM
Inventory
Run Code Online (Sandbox Code Playgroud)
您看到奇怪的结果,因为它将您的除法结果视为整数而不是小数.指定.0
tell sql server将其视为小数.
更新:
如果尾随的零件吓到了你,你可以随时这样做:
SELECT
CAST(ROUND(WeightInOZ / 16.0, 2) AS NUMERIC(8,2)) as WeightInLbs
FROM
Inventory
Run Code Online (Sandbox Code Playgroud)
问题是这样的:
WeightInOZ / 16
Run Code Online (Sandbox Code Playgroud)
由于您正在处理两个整数,因此SQL Server会截断余数,因此没有用于舍入的小数组件.
你想要做的是强迫它执行浮点(或十进制)除法.最简单的方法是16
改为16.0
.
SELECT
ROUND(WeightInOZ / 16.0, 2)as WeightInLbs
FROM
Inventory
Run Code Online (Sandbox Code Playgroud)