SQL Server。考虑到所有十进制数字,我如何围绕小数点

时间:2015-10-21 11:27:04

标签: sql sql-server rounding

我正在尝试舍入小数,似乎在SQL Server中舍入只考虑舍入比例的最后一位数后的一位数。

SELECT CAST(795.5921967249997 AS decimal(18,8))
--795.59219672
SELECT ROUND(795.5921967249997, 8)
--795.5921967200000

我正在寻找的是一个公平的舍入,它考虑所有数字。在上面的例子中,我期待3为第8个十进制数字。 如果不编写自己的函数,我可以这样做吗?

1 个答案:

答案 0 :(得分:4)

如果你想要" 3"在那个位置,那么你正在改变舍入规则。您可以分两步完成此操作:

SELECT CAST(CAST(795.5921967249997 AS decimal(18, 9)) as decimal(18, 8))