小编典典

在0.05或0.00上四舍五入MS SQL

sql

您好,我来自波斯尼亚和黑塞哥维那,在我们县,最小的钞票是0.05。现在,政府将我们的重试价格推高到0.05或0.00左右。因此,我想创建SQL标量值函数以将价格四舍五入到给定值。是否有一些内置解决方案,所以我可以节省查询资源。感谢您的问候最好的问候

从评论中编辑:

  • 0,1,2,3,4归零
  • 5,6,7,8,9归零+1

阅读 160

收藏
2021-04-15

共1个答案

小编典典

多亏了marc_s,我才更改为money数据类型。

浮动vs十进制vs货币数据类型文章和流程图

ALTER FUNCTION dbo.ufnRound (@number money)
RETURNS money
AS
BEGIN
    RETURN FLOOR(@number*20) / 20
END
GO
SELECT dbo.ufnRound (1.22), dbo.ufnRound (1.23), dbo.ufnRound (1.27), dbo.ufnRound (1.28)

-- gives    1.2    1.2   1.25   1.25
2021-04-15