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

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

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c#
, math
奇进偶不进
关于春天的成语、关于春节、关于、关于春节的故事、关于ch,以便于您获取更多的相关知识。

时间: 2024-12-30 23:11:05

关于C# Math 处理奇进偶不进的实现代码_C#教程的相关文章

c#实现16进制和字符串之间转换的代码_C#教程

十六进制字符串与数值类型之间转换(C# 编程指南) 以下示例演示如何执行下列任务: 获取字符串中每个字符的十六进制值. 获取与十六进制字符串中的每个值对应的字符. 将十六进制 string 转换为整型. 将十六进制 string 转换为浮点型. 将字节数组转换为十六进制 string. 示例 此示例输出 string 中的每个字符的十六进制值.首先,它将 string 分析为字符数组,然后对每个字符调用 ToInt32(Char) 以获取相应的数字值.最后,在 string 中将数字的格式设置为

c语言-简易的10进制整数进制转换程序,要求支持2进制

问题描述 简易的10进制整数进制转换程序,要求支持2进制 #include #include int main() { int i,j; int a[10]; int num; scanf("%d",&num); int b1=num; for(i=0;b1!=0;i++) { a[i]=b1%2; b1=b1/2; } for(j=i;j>=0;j--) { printf("%d",a[j]); } return 0; } 解决方案 #include

进高校、进社区、进工地网点推出上门服务

客户在建行网点内办理业务 本报海口9月14日讯(记者 郭丹 摄影报道)"办业务的效率高了,服务更周到了."9月14日上午,在建行海口凤翔路支行,市民张大爷谈及这些年建行的服务变化赞不绝口.67的张大爷告诉记者,一个明显的变化是,如今在建行办理业务的时间缩短了一半,关键是工作人员还能为不方便的老人提供上门服务,让人十分感动.记者在走访中了解到,建行营业网点实行转型后,办业务的效率和服务水平都大为提高. 分流引导,帮客户节省时间 "过去要20分钟才能办完的业务,如今最多只要10分

关于PHP中字符串与多进制转换函数的实例代码_php实例

转换函数 /** * [字符串转换为(2,8,16进制)ASCII码] * @param string $str [待处理字符串] * @param boolean $encode [字符串转换为ASCII|ASCII转换为字符串] * @param string $intType [2,8,16进制标示] * @return string byte_str [处理结果] * @author alexander */ function strtoascii($str, $encode=true,

关于PHP中字符串与多进制转换函数的实例代码

转换函数 /** * [字符串转换为(2,8,16进制)ASCII码] * @param string $str [待处理字符串] * @param boolean $encode [字符串转换为ASCII|ASCII转换为字符串] * @param string $intType [2,8,16进制标示] * @return string byte_str [处理结果] * @author alexander */ function strtoascii($str, $encode=true,

阿里发言人斯比利奇:巴茨想进董事会并无此事

据华尔街日报消息称,阿里巴巴日前曾向雅虎提交股份回购申请,不过遭到雅虎拒绝,阿里巴巴发言人约翰·斯比利奇(John Spelich)本周四在声明中证实此消息. 阿里巴巴发言人约翰·斯比利奇(John Spelich)在声明中说,在阿里巴巴提交的申请中包括股份事宜,还有"将雅虎所持股份价值最大化的计划". 雅虎按照自己的计算方法提交一份方案,阿里巴巴发现该计划"不公平". 昨天,雅虎CEO巴茨称无意出售所持股份,并考虑在今年底进入到阿里巴巴董事会. 斯比利奇在声明中说

2进制~62进制与10进制的转换

转换 效果如下: //var str="AZ";  //for(var i=0;i<str.length;i++)trace(str.charCodeAt(i));  //charCode:0-9:(48-57);A-Z:(65-90);a-z:(97-122);  //将10进制数N转换成d进制数(以0-9,A-Z,a-z字符表示),d为2-62  function jh_10toD(N, d) {    N = Math.floor(Number(N));    d = Ma

C# VB 实现10进制 16进制之间互相转换_C#教程

方法1: 复制代码 代码如下: int d=10; d.ToString("x") //或把x改为X,,,就变成了16位的字符串了. int x=Convert.ToInt32(d.ToString("x"),16);//把16进制的字符串变回10进制的. 方法2: 复制代码 代码如下: static void Main() { int i = 446; string hex = i.ToString( "X" /* or x * ); Cons

2进制、8进制、10进制、16进制...各种进制间的轻松转换

转换 在.net Framework中,System.Convert类中提供了较为全面的各种类型.数值之间的转换功能.其中的两个方法可以轻松的实现各种进制的数值间的转换: Convert.ToInt32(string value, int fromBase): 可以把不同进制数值的字符串转换为数字,其中fromBase参数为进制的格式,只能是2.8.10及16: 如Convert.ToInt32("0010",2)执行的结果为2; Convert.ToString(int value,