SSRS - Visual Studio 回合问题

问题描述 投票:0回答:1

我希望这个问题不要那么愚蠢。 我们有一个表达式列,需要四舍五入到小数点后三位。例如,如果表达式的结果 = 0.1805,则舍入为 0.181,如果表达式的结果 = 0.1804,则舍入为 0.180。同时,如果表达式的结果 = 0 ,则显示 0。

问题是,现在,round(0.1805,3)=0.18 而不是 0.181,我不知道为什么。如果我将列的属性更改为显示 3 位小数,则它将把表达式 round(0.1805,3) 显示为 0.181,但它也会将 0 显示为 0.000,这是我们不希望的。有谁知道为什么这里的 round(0.1805,3)=0.18 而不是 0.181,而 round(0.1806,3)=0.181 这是正确的。非常感谢!

vba visual-studio-code reporting-services
1个回答
0
投票

那是因为 Round 执行庄家舍入。

您可能必须使用 Format(或 ToString)来进行真正的 4/5 舍入。

Format(0.1805, "0.000")
-> 0.181

如果不只是为了显示,请转换为小数或货币。

© www.soinside.com 2019 - 2024. All rights reserved.