Sql server 在SSRS 2016 Round()函数中创建表达式时,第三个参数出错

Sql server 在SSRS 2016 Round()函数中创建表达式时,第三个参数出错,sql-server,reporting-services,ssrs-2016,Sql Server,Reporting Services,Ssrs 2016,使用Round()函数时我做错了什么?最后,我尝试返回一个数字来显示一个美元数字(不是数据类型,只是以$######的格式为例) 当我用下面的方法使用Round()函数时,它工作得很好,并向上取整 =Round(125.239, 2) 输出为125.24 我在表达式中使用的Round()函数如下所示 =Round(125.239, 2, 1) 由于某种原因,它会抛出一个错误 匹配参数“mode”的参数从“Integer”缩小为 '系统。中点舍入' 我做错了什么?为了补充我的问题,我应该说我正

使用Round()函数时我做错了什么?最后,我尝试返回一个数字来显示一个美元数字(不是数据类型,只是以$######的格式为例)

当我用下面的方法使用Round()函数时,它工作得很好,并向上取整

=Round(125.239, 2)
输出为125.24

我在表达式中使用的Round()函数如下所示

=Round(125.239, 2, 1)
由于某种原因,它会抛出一个错误

匹配参数“mode”的参数从“Integer”缩小为 '系统。中点舍入'


我做错了什么?为了补充我的问题,我应该说我正在尝试使用“1”作为第三个参数,以取整最终结果为“125.23”的输出。

SSRS使用VB.Net函数,因此请尝试:

=Round(125.239, 2, MidpointRounding.AwayFromZero)
参考:

编辑:

根据OP的评论,后面的是正确到小数点后2位的值,而不是四舍五入。这可以通过执行以下操作来实现:

=Floor(125.239*100) / 100

SSRS使用VB.Net函数,因此请尝试:

=Round(125.239, 2, MidpointRounding.AwayFromZero)
参考:

编辑:

根据OP的评论,后面的是正确到小数点后2位的值,而不是四舍五入。这可以通过执行以下操作来实现:

=Floor(125.239*100) / 100

我们可以看到更多您的代码吗?如果您只是输入:

SELECT ROUND(125.239, 2, 1)
向下舍入更像是截断。圆形功能应该适合您,但如果您仅使用:

ROUND(125.239, 2, 1)
它将返回125.230。如果您希望格式正确,我会这样做:

CAST(ROUND(125.239, 2, 1) AS DECIMAL(18,2))

这返回125.23。这将用下面的零将数字截断为小数点后2位,然后按您想要的方式进行格式化。

我们可以看到更多的代码吗?如果您只输入:

SELECT ROUND(125.239, 2, 1)
向下舍入更像是截断。圆形功能应该适合您,但如果您仅使用:

ROUND(125.239, 2, 1)
它将返回125.230。如果您希望格式正确,我会这样做:

CAST(ROUND(125.239, 2, 1) AS DECIMAL(18,2))

这返回125.23。这将用后面的零将数字截断为小数点后2位,然后按您想要的方式格式化。

这适用于我的配置。您的数据库的版本是什么?请。@pascalsanchez该错误是VB.Net错误,不是SQL Server错误。OP不是在SQL中这样做的,而是在SSRS表达式中这样做的。数据库的版本与此无关。这对我的配置有效。您的数据库的版本是什么?请。@pascalsanchez该错误是VB.Net错误,不是SQL Server错误。OP不是在SQL中这样做的,而是在SSRS表达式中这样做的。数据库的版本与此无关。我很困惑。。。
ToEven
AwayFromZero
的结果都是“125.24”。不可能得到“125.23”作为结果吗?不使用
,没有Arvo。我会更新我的答案,告诉你如何得到你想要的结果。为你更新答案,@ArvoBowen。您真正想要的是
楼层
。感谢您的快速响应和非常有用的回答!!我想这实际上是一个两个问题。我需要找出为什么你提到的Round函数(第三个参数)对我不起作用,以及我正在寻找一个完全不同的函数。搞定了!我很困惑。。。
ToEven
AwayFromZero
的结果都是“125.24”。不可能得到“125.23”作为结果吗?不使用
,没有Arvo。我会更新我的答案,告诉你如何得到你想要的结果。为你更新答案,@ArvoBowen。您真正想要的是
楼层
。感谢您的快速响应和非常有用的回答!!我想这实际上是一个两个问题。我需要找出为什么你提到的Round函数(第三个参数)对我不起作用,以及我正在寻找一个完全不同的函数。搞定了!