2017-04-21 33 views
0

我有一个SSRS表达式,如果分数是< .85字体颜色是红色,我需要颜色代码,否则是黑色。输出显示1位小数(例如85.0%,83.1%)值,但当值为.849时,它会将颜色更改为红色,因为它将值四舍五入为85.0%并将其转换为字体颜色红色。是否有一种语法,当值为85.0%时,它不会将字体颜色更改为红色?SSRS通过表达式的颜色编码值

=IIF(Fields!CompositeScore.Value < .85,"Red","Black") 

enter image description here

回答

0

我认为有些东西是不完全正确的您的方案,因为0.849是84.9%(四舍五入到一个百分比小数点)。假设您实际上将小数点四舍五入到小数点后三位,那么值0.8497会产生您所描述的问题。

对于场景CompositeScore = 0.8497,我将应用相同的舍入逻辑到您的色彩表现,显示正在执行像这样:

=IIF(Round(Fields!CompositeScore.Value * 100)/100 < 0.85, "Red", "Black") 

由于SSRS仅具有如下功能,四舍五入小数点到最近的整数(无法指定精度),您必须首先将数字乘以100以获得两位小数精度,然后再除以100以返回到原始值。更多细节可在提供的链接中找到:

MSDN Article Describing Rounding Precision