关于C# Math 处理奇进偶不进
话说,最近一次系统维护 用JS读取导入Excel中的实验数据,出现被自动四舍五入。后来到客户现场听客户反馈 Excel实验数据要求 奇进偶不进。
关于 奇进偶不进 产生的由来:从统计学的角度,“奇进偶舍”比“四舍五入”要科学,在大量运算时,它使舍入后的结果误差的均值趋于零,而不是像四舍五入那样逢五就入,导致结果偏向大数,使得误差产生积累进而产生系统误差,“奇进偶舍”使测量结果受到舍入误差的影响降到最低。
Math下找了下,使用Round 的重载,使用 MidpointRounding.ToEven 就可以实现 奇进偶不进。
//
double d = 5.214;
double res = Math.Round(d, , MidpointRounding.ToEven);
Console.WriteLine(res);//5.21 //
d = 5.216;
res = Math.Round(d, , MidpointRounding.ToEven);
Console.WriteLine(res);//5.22 //
d = 5.215;
res = Math.Round(d, , MidpointRounding.ToEven);
Console.WriteLine(res);//5.22
d = 5.225;
res = Math.Round(d, , MidpointRounding.ToEven);
Console.WriteLine(res);//5.22 //不止小数点后3位时
d = 0.7865666;
res = Math.Round(d, , MidpointRounding.ToEven);
Console.WriteLine(res);//0.79 d = 0.786;
res = Math.Round(d, , MidpointRounding.ToEven);
Console.WriteLine(res);//0.79 d = 0.785;
res = Math.Round(d, , MidpointRounding.ToEven);
Console.WriteLine(res);//0.78
关于C# Math 处理奇进偶不进的更多相关文章
- 【学习总结】Python-3-round()函数的奇进偶弃的问题
参考: 本教程的评论区:菜鸟教程-Python3-Python数字 "4舍6入5看齐,奇进偶不进" 取代"四舍五入". round()函数: 可以在第二个参数指 ...
- js实现四舍六入 奇进偶舍
function PointFloat(src, pos) { return Math.round(src * Math.pow(10, pos)) / Math.pow(10, pos); } // ...
- 进制与进制转换DAY2
进制和进制转换 一.进制的基础 1.十进制(案例) 系数:0-9 进位规则:逢十进一 权:基数的次幂 基数:几进制基数就是几 规律:右侧第一位的权是10的0次幂,每向左移动一位次幂会+1. 进制的表示 ...
- C#控制打印机通过不同纸盒/进纸口进纸打印
通常我们是通过程序操作打印机打印我们设置好的内容,但基本都是打印机默认进纸口打印:最近有一个通过C#程序控制两个进纸口分别进一张纸进行打印的需求,通过偿失找到了解决方案如下: 关于C#调用打印机打印的 ...
- sql奇进偶舍函数
create function sslr(@num numeric(20,10),@i int) --@i保留的小数位 --@num传入的数据 returns varchar(2 ...
- table 奇行偶行
jquery 方法: $("tr:odd").//偶行 $("tr:even") //奇行
- HDU-5215 Cycle 无向图判奇环偶环
题意:给一个无向图,判断这个图是否存在奇环和偶环. 解法:网上有一种只用dfs就能做的解法,但是我不太理解. 这里用的是比较复杂的.首先奇环很简单可以用二分图染色判断.问题是偶环怎么判断?这里我们想, ...
- 概念:P制,N制,奇场,偶场,隔行扫描,逐行扫描
转帖: 场的概念原于电视,电视由于要克服信号频率带宽的限制,无法在制式规定的刷新时间内(PAL制式是25fps)同时将一帧图象显现在屏幕上,只能将图象分成两个半幅的图像,一先一后地显现,由于刷新速度快 ...
- matlab求距一个数最近的奇(偶)数
int_a = floor(a);minEven = int_a+mod(int_a,2); %最近偶数minOdd = int_a+1-mod(int_a,2); %最近奇数
随机推荐
- Leetcode 290 Word Pattern STL
Leetcode 205 Isomorphic Strings的进阶版 这次是词组字符串和匹配字符串相比较是否一致 请使用map来完成模式统计 class Solution { public: boo ...
- Leetcode-122 Best Time to Buy and Sell Stock II
#122 Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the pric ...
- android: permission和uses-permission
首先,先看一下permission定义的格式: <permission android:description="string resource" android:icon= ...
- 虚拟机评估——如何确定一个CPU核上部署的虚拟机数量?
最近研究虚拟化技术,不可避免遇到一个问题:如何评估物理主机上虚拟主机的容量?下面这篇文章的思路有一定的启发性,转发一下. 如何确定一个CPU核上部署的虚拟机数量? 摘要:本文说明一个CPU核上部署虚拟 ...
- AngularJS和DataModel
通常,在AngularJS中使用JSON作为存储数据的模型.我们可能这样在controller中写model: app.controller('BookController',['$scope',fu ...
- Docker实践(5)—资源隔离
Docker使用cgroup实现CPU,内存和磁盘IO等系统资源的限制. CPU Docker现在有2个与CPU资源相关的参数,-c可以指定CPU的占比,--cpuset可以绑定CPU.例如,指定容器 ...
- IOS中的多线程之GCD
在ios中,使用多线程有三种方式,分别是:NSThread.NSOperation和NSOperationQueue.GCD,在本节,主要讲解一下CDD的使用. GCD(Grand Central D ...
- java bean、List、数组、map和Json的相互转化
工程 json包为 代码 package com.my.json; public class ChildBean { private String childName; private String ...
- ibatis返回map列表
ibatis返回map列表 1. resultClass="java.util.HashMap" <select id="queryCustmerCarNoBy ...
- ASP.NET MVC路由规则
1 是从上往下寻找路由规则的 2 如果上面的匹配了,则下面的不会匹配 3 假如域名是www.startpress.cn 路由规则是 routes.MapRoute( name: "Defau ...