Wyn中的四舍五入函数采用的是国际标准的四舍五入规则,具体规则内容如下:
虽然可以避免数据中长期的"舍"去或者"入"位产生的数据误差。但是和国内理解的四舍五入规则有较大差异,容易造成误解。今天教大家在 Wyn 中,通过自定义函数的方式实现国内规则的四舍五入数据显示。
报表自定义函数功能可以参考帮助文档报表 自定义函数 的介绍。
1. C# 函数:四舍五入功能
- /// <function name="RoundChinese">
- /// <culture>
- /// <label>RoundChinese</label>
- /// <syntax>RoundChinese(<value>, <decimalPlaces>)</syntax>
- /// <description>中国规则的四舍五入,小数位数大于等于0</description>
- /// <example>Code.RoundChinese(10.51,1)</example>
- /// </culture>
- /// </function>
- public double RoundChinese(double value, int decimalPlaces)
- {
- // 验证小数位数合法性
- if (decimalPlaces < 0)
- {
- return value;
- }
- // 处理0位小数(直接取整)
- if (decimalPlaces == 0)
- {
- // 乘以1后四舍五入,避免浮点数精度问题
- return Math.Round(value * 1, MidpointRounding.AwayFromZero) / 1;
- }
- // 计算放大倍数(10的decimalPlaces次方,例:保留2位→100)
- double multiplier = Math.Pow(10, decimalPlaces);
-
- // 核心逻辑:放大后四舍五入(AwayFromZero表示远离0的方向,即≥0.5进1)
- double roundedValue = Math.Round(value * multiplier, MidpointRounding.AwayFromZero) / multiplier;
-
- return roundedValue;
- }
复制代码
2. 添加自定义函数
在 Wyn 系统后台添加自定义函数,编译后保存更改:
3. 自定义函数测试
在报表中测试函数功能:
|