如何在 SSRS 表达式中将 1.0% 显示为 1%

How to display 1.0% as 1% in SSRS expression

我正在计算百分比并将值格式化为“0.0”。这给了我 3.7%、4.1% 等值。但是当它是 1.0% 时,我只想显示为 1%,当有一个整数值时如何删除小数? 谢谢你。

你如何在你的格式周围包装一个 iff 语句?

类似于

=iif(round(Fields!num.Value) = Fields!num.Value,format(Fields!num.Value,"0%"),format(Fields!num.Value,"0.00%"))

这会评估输出,如果它是 1.0%,那么它就变成 1%,否则根据需要格式化剩余的值

我假设您的数据库值是十进制格式,因此 0.01 代表 1%。

如果不是这种情况,请告诉我,我会修改答案。

我用

创建了一些测试数据
SELECT 0.09 as pc
UNION SELECT 0.091
UNION SELECT 0.099
UNION SELECT 0.01
UNION SELECT 0.011
UNION SELECT 0.012
UNION SELECT 0.019
UNION SELECT 0.020
UNION SELECT 0.021

然后我添加了一个 table 来显示原始值以及各种其他格式。

最后,我添加了第 4 列,根据它是否为 'whole percent' 来格式化值。

我把文本框的Format 属性设置为下面的表达式。

=IIF(
    Fields!pc.Value * 100 = CINT(Fields!pc.Value*100)
    , "p0"
    , "p1"
    )

这基本上是检查乘以 100 后的值是否为整数,如果是,则我们应用 p0 作为格式代码,如果不是,我们应用 p1 作为格式代码。

最终结果如下

注意:我们只改变了文本框的格式属性,没有值表达式。

正如您在下面的设计中看到的,每一列的值表达式都是相同的([pc]),只是每个文本框的格式属性不同。要显示属性面板,请单击文本框,然后在 Visual Studio 中按 F4。如果您使用的是 Report Builder,那么我不确定 F4 是否有效,但是有一个菜单选项可以在某处显示属性面板。

最后,您显然需要将我示例中的字段 pc 替换为报告中的实际字段名称。