Sql server 如何在SQL Server中正确舍入数字?
下面的图片示例,是否有一种方法可以使SQL Server中的总成本v1精确等于v2 我有一份简单的销售报告Sql server 如何在SQL Server中正确舍入数字?,sql-server,formula,Sql Server,Formula,下面的图片示例,是否有一种方法可以使SQL Server中的总成本v1精确等于v2 我有一份简单的销售报告 成本有2位小数或4位小数 计数v2只是每个唯一项的计数v1之和 我在SQL Server中的总成本v1公式为: SUM(ROUND(([Cost]*(CAST([Count] as INT))), 2)) as 'Total Cost v1' 有没有办法修改上述公式,使最终的总数与v2相匹配? 否则,如果列表变大,数字上的差异就越大 计数的数据类型为十进制(10,4)。Cost的数据
- 成本有2位小数或4位小数
- 计数v2只是每个唯一项的计数v1之和
SUM(ROUND(([Cost]*(CAST([Count] as INT))), 2)) as 'Total Cost v1'
有没有办法修改上述公式,使最终的总数与v2相匹配?
否则,如果列表变大,数字上的差异就越大
计数的数据类型为十进制(10,4)。Cost的数据类型是money
您应该将公式更改为
ROUND(SUM([Cost]*(CAST([Count] as INT))), 2) as 'Total Cost v1'
您使用的是
DECIMAL/NUMERIC/MONEY
还是FLOAT
数据类型?计数的数据类型是DECIMAL(10,4)。Cost的数据类型是money。但在我的公式中,我已经将计数转换为INT。不确定我还缺少什么。您缺少了。。。四舍五入时的分数。。。这是四舍五入的自然和合乎逻辑的结论。你永远不会用这种方式让数字匹配。