请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

Eden.Sun Wyn认证

超级版主

271

主题

5392

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
10027

Wyn高级认证Wyn认证

Eden.Sun Wyn认证
超级版主   /  发表于:2025-11-26 14:23  /   查看:27  /  回复:0

Wyn中的四舍五入函数采用的是国际标准的四舍五入规则,具体规则内容如下:

虽然可以避免数据中长期的"舍"去或者"入"位产生的数据误差。但是和国内理解的四舍五入规则有较大差异,容易造成误解。今天教大家在 Wyn 中,通过自定义函数的方式实现国内规则的四舍五入数据显示。

报表自定义函数功能可以参考帮助文档报表 自定义函数 的介绍。

1. C# 函数:四舍五入功能
  1. /// <function name="RoundChinese">
  2. /// <culture>
  3. /// <label>RoundChinese</label>
  4. /// <syntax>RoundChinese(<value>, <decimalPlaces>)</syntax>
  5. /// <description>中国规则的四舍五入,小数位数大于等于0</description>
  6. /// <example>Code.RoundChinese(10.51,1)</example>
  7. /// </culture>
  8. /// </function>
  9. public double RoundChinese(double value, int decimalPlaces)
  10. {
  11.     // 验证小数位数合法性
  12.     if (decimalPlaces < 0)
  13.     {
  14.         return value;
  15.     }

  16.     // 处理0位小数(直接取整)
  17.     if (decimalPlaces == 0)
  18.     {
  19.         // 乘以1后四舍五入,避免浮点数精度问题
  20.         return Math.Round(value * 1, MidpointRounding.AwayFromZero) / 1;
  21.     }

  22.     // 计算放大倍数(10的decimalPlaces次方,例:保留2位→100)
  23.     double multiplier = Math.Pow(10, decimalPlaces);
  24.    
  25.     // 核心逻辑:放大后四舍五入(AwayFromZero表示远离0的方向,即≥0.5进1)
  26.     double roundedValue = Math.Round(value * multiplier, MidpointRounding.AwayFromZero) / multiplier;
  27.    
  28.     return roundedValue;
  29. }
复制代码


2. 添加自定义函数
在 Wyn 系统后台添加自定义函数,编译后保存更改:


3. 自定义函数测试
在报表中测试函数功能:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部