我正在尝试在查询中舍入结果(许多列中的 1 列(
Select * (DocTotal - Vat) * Rate AS TOTAL, ItemCode, Qty
From
ORDR
以上是我的选择声明(从更大的角度(
Doctotal is a decimal 20,2
Vat is a decimal 20,2
和
Rate is decimal 2,4
(其他列没有问题(
这将返回具有 6 位小数的 TOTAL 结果,例如 353.690000
是否可以将计算的结果四舍五入到小数点后 2 位。
将其转换为小数将隐式舍入计算中生成的浮点值。
select *,
cast((DocTotal - Vat) * Rate as decimal(20,2)) AS TOTAL,
ItemCode, Qty
from ORDR
因此,实际上不需要先用 ROUND 对其进行四舍五入。
或者,如果您更喜欢该语法,也可以改用 CONVERT。
在这种情况下,工作方式相同。 但它特定于SQL Server。
虽然 CAST 是一个标准功能 (SQL-92(。
convert(decimal(20,2), (DocTotal - Vat) * Rate) AS TOTAL