当前位置: 首页 > 编程笔记 >

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

籍利
2023-03-14
本文向大家介绍关于C# Math 处理奇进偶不进的实现代码,包括了关于C# Math 处理奇进偶不进的实现代码的使用技巧和注意事项,需要的朋友参考一下

话说,最近一次系统维护 用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 处理奇进偶不进的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 偶现 bug 是一种类似于外太空50足隐身蝎子的东西。这种噩梦是如此稀少以至于它很难观察,但其出现频率使得它不能被忽视。你不能调试因为你不能找到它。 尽管在8个小时后你会开始怀疑,偶现的 bug 必须像其他事情一样遵循相同的逻辑规律。但困难的是它只发生在一些未知的情形。尝试着去记录这个 bug 出现时的情景,这样你可以去推测到底是什么样的可变性。情况可能跟数据的值相关,比如“这只是在我们把Wyom

  • 本文向大家介绍C# 获取进程退出代码的实现示例,包括了C# 获取进程退出代码的实现示例的使用技巧和注意事项,需要的朋友参考一下 我需要写一个程序,让这个程序知道另一个程序是否正常退出,于是就需要获取这个进程的退出代码 在程序如果需要手动退出,可以设置当前的退出代码 这时的程序运行就退出,同时退出的代码就是 -100 这和 C 语言的在 main 函数返回值一样 在 C# 如果想要实现 C 语言的

  • 本文向大家介绍C#实现进程管理的启动和停止实例,包括了C#实现进程管理的启动和停止实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现进程管理的启动和停止方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍nodejs使用socket5进行代理请求的实现,包括了nodejs使用socket5进行代理请求的实现的使用技巧和注意事项,需要的朋友参考一下 需要用到2个库, request socks5-http-client/lib/Agent/ 或 socks5-https-client/lib/Agent 因为一些已知原因,有时候,http.request请求无法拿到数据, 首先想到的是

  • 本文向大家介绍Android 进度条自动前进效果的实现代码,包括了Android 进度条自动前进效果的实现代码的使用技巧和注意事项,需要的朋友参考一下 今天给大家分享进度条自动前进功能的实现,先给大家分享实现效果图,感觉不错可以参考实现代码。 效果如下图: 首先布局要设置进度条最大值: 主要代码: 所有代码: 总结 到此这篇关于Android 进度条自动前进效果的实现代码的文章就介绍到这了,更多相

  • 本文向大家介绍C# Oracle批量插入数据进度条的实现代码,包括了C# Oracle批量插入数据进度条的实现代码的使用技巧和注意事项,需要的朋友参考一下 前言 由于项目需求,需要将Excel中的数据进过一定转换导入仅Oracle数据库中。考虑到当Excel数据量较大时,循环Insert语句效率太低,故采用批量插入的方法。在插入操作运行时,会造成系统短暂的“卡死”现象。为了让用户知道插入的状态,需