关于C# Math 处理奇进偶不进的实现代码

作者:jingxian 时间:2023-03-25 09:30:29 

话说,最近一次系统维护 用JS读取导入Excel中的实验数据,出现被自动四舍五入。后来到客户现场听客户反馈  Excel实验数据要求 奇进偶不进。

关于 奇进偶不进 产生的由来:从统计学的角度,“奇进偶舍”比“四舍五入”要科学,在大量运算时,它使舍入后的结果误差的均值趋于零,而不是像四舍五入那样逢五就入,导致结果偏向大数,使得误差产生积累进而产生系统误差,“奇进偶舍”使测量结果受到舍入误差的影响降到最低。

Math下找了下,使用Round 的重载,使用 MidpointRounding.ToEven 就可以实现 奇进偶不进。


// 4
     double d = 5.214;
     double res = Math.Round(d, 2, MidpointRounding.ToEven);
     Console.WriteLine(res);//5.21

//6
     d = 5.216;
     res = Math.Round(d, 2, MidpointRounding.ToEven);
     Console.WriteLine(res);//5.22

//5
     d = 5.215;
     res = Math.Round(d, 2, MidpointRounding.ToEven);
     Console.WriteLine(res);//5.22
     d = 5.225;
     res = Math.Round(d, 2, MidpointRounding.ToEven);
     Console.WriteLine(res);//5.22

//不止小数点后3位时
     d = 0.7865666;
     res = Math.Round(d, 2, MidpointRounding.ToEven);
     Console.WriteLine(res);//0.79

d = 0.786;
     res = Math.Round(d, 2, MidpointRounding.ToEven);
     Console.WriteLine(res);//0.79

d = 0.785;
     res = Math.Round(d, 2, MidpointRounding.ToEven);
     Console.WriteLine(res);//0.78
标签:C#,Math,奇进偶不进
0
投稿

猜你喜欢

  • java以json格式向后台服务器接口发送请求的实例

    2023-05-01 01:47:08
  • Android库项目中的资源ID冲突的解决方法

    2023-11-04 05:32:53
  • java 多线程的三种构建方法

    2023-07-01 22:18:26
  • ionic App 解决android端在真机上tab处于顶部的问题

    2022-05-11 21:56:57
  • 如何设置Spring Boot测试时的日志级别

    2023-11-10 14:11:20
  • SpringBoot找不到映射文件的处理方式

    2023-10-15 07:40:11
  • JDBC核心技术详解

    2023-12-09 12:22:28
  • C#实现字符串进制转换方法汇总

    2022-01-03 09:30:37
  • 使用OpenGL绘制Bezier曲线

    2023-03-14 19:55:39
  • 如何使用SpEL表达式实现动态分表查询

    2022-01-05 03:09:55
  • C#中抽象方法与虚拟方法的区别

    2021-10-30 07:30:15
  • SpringBoot中读取application.properties配置文件的方法

    2023-10-20 17:29:05
  • Android使用WebView实现截图分享功能

    2023-04-17 08:03:48
  • Android使用ViewPager实现图片滑动预览效果

    2023-02-15 15:28:28
  • Java操作excel的三种常见方法实例

    2022-12-11 02:29:55
  • 通过自定制LogManager实现程序完全自定义的logger

    2022-05-11 06:33:15
  • WinForm使用DecExpress控件中的ChartControl插件绘制图表

    2023-09-27 02:21:50
  • C#中缓存的基本用法总结

    2023-12-06 01:22:45
  • Java11 发布前抓紧掌握这些新特性

    2022-02-08 13:20:58
  • Java开启JMX远程监控服务配置

    2021-11-02 01:14:43
  • asp之家 软件编程 m.aspxhome.com