You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSRS百分比格式需求:保留一位小数且不四舍五入

解决SSRS中百分比截断格式化问题的方案

SSRS表达式层面处理

SSRS自带的数字格式默认采用四舍五入逻辑,因此需要先通过表达式截断数值到目标精度,再应用格式:

方法1:使用Floor函数实现截断

针对保留一位小数且不四舍五入的需求,修改原表达式,通过Floor函数将数值放大10倍取整后再缩小10倍,实现截断效果:

iif(ReportItems!Textbox14.Value <> 0, Floor((ReportItems!amount.Value / ReportItems!Textbox14.Value) * 100 * 10) / 10, 0)

将该文本框的格式设置为 #0.#,即可显示55.5。

如果需要直接显示带%符号的格式,调整表达式为:

iif(ReportItems!Textbox14.Value <> 0, Floor((ReportItems!amount.Value / ReportItems!Textbox14.Value) * 10) / 100, 0)

再设置文本框格式为 #0.#%,会显示为55.5%。

方法2:字符串截断法(适合正数场景)

将计算结果转为字符串后,截取小数点后一位再转回数值:

iif(ReportItems!Textbox14.Value <> 0, CDbl(Left(CStr((ReportItems!amount.Value / ReportItems!Textbox14.Value) * 100), InStr(CStr((ReportItems!amount.Value / ReportItems!Textbox14.Value) * 100), ".") + 1)), 0)

格式同样设置为 #0.# 即可。

SQL层面处理

若倾向于在数据源端完成计算,可在SQL查询中直接截断数值,避免SSRS端的格式问题:

SELECT 
    amount,
    Textbox14,
    CASE 
        WHEN Textbox14 <> 0 THEN FLOOR((amount / Textbox14) * 1000) / 10 
        ELSE 0 
    END AS CalculatedPercentage
FROM YourTableName

将查询结果的CalculatedPercentage字段拖入SSRS报表,直接设置格式为 #0.# 即可得到55.5。

内容的提问来源于stack exchange,提问作者Brian Evans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:42:25