【发布时间】:2015-10-21 11:27:04
【问题描述】:
我正在尝试对小数进行四舍五入,而 SQL Server 中的舍入似乎只考虑舍入比例的最后一位数字之后的一位数字。
SELECT CAST(795.5921967249997 AS decimal(18,8))
--795.59219672
SELECT ROUND(795.5921967249997, 8)
--795.5921967200000
我正在寻找的是一个公平的四舍五入,它考虑了所有数字。在上面的示例中,我期望 3 作为第 8 位十进制数字。 我可以在不编写自己的函数的情况下做到这一点吗?
【问题讨论】:
-
"SQL Server 只考虑舍入比例的最后一位数字之后的一位数字"——通常是这样进行舍入的。如果你想建立自己的非标准roundig-rules,你必须自己实现它们。
标签: sql sql-server rounding