關(guān)于C# Math 處理奇進(jìn)偶不進(jìn)的實(shí)現(xiàn)代碼
話說,最近一次系統(tǒng)維護(hù) 用JS讀取導(dǎo)入Excel中的實(shí)驗(yàn)數(shù)據(jù),出現(xiàn)被自動(dòng)四舍五入。后來到客戶現(xiàn)場(chǎng)聽客戶反饋 Excel實(shí)驗(yàn)數(shù)據(jù)要求 奇進(jìn)偶不進(jìn)。
關(guān)于 奇進(jìn)偶不進(jìn) 產(chǎn)生的由來:從統(tǒng)計(jì)學(xué)的角度,“奇進(jìn)偶舍”比“四舍五入”要科學(xué),在大量運(yùn)算時(shí),它使舍入后的結(jié)果誤差的均值趨于零,而不是像四舍五入那樣逢五就入,導(dǎo)致結(jié)果偏向大數(shù),使得誤差產(chǎn)生積累進(jìn)而產(chǎn)生系統(tǒng)誤差,“奇進(jìn)偶舍”使測(cè)量結(jié)果受到舍入誤差的影響降到最低。
Math下找了下,使用Round 的重載,使用 MidpointRounding.ToEven 就可以實(shí)現(xiàn) 奇進(jìn)偶不進(jìn)。
// 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 //不止小數(shù)點(diǎn)后3位時(shí) 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
以上這篇關(guān)于C# Math 處理奇進(jìn)偶不進(jìn)的實(shí)現(xiàn)代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C# 獲取動(dòng)態(tài)key的json對(duì)象的值案例
這篇文章主要介紹了C# 獲取動(dòng)態(tài)key的json對(duì)象的值案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-01-01C#實(shí)現(xiàn)PDF合并的項(xiàng)目實(shí)踐
有時(shí)我們可能會(huì)遇到需要的資料或教程被分成了幾部分存放在多個(gè)PDF文件中,本文主要介紹了C#實(shí)現(xiàn)PDF合并的項(xiàng)目實(shí)踐,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01C# ThreadPool之QueueUserWorkItem使用案例詳解
這篇文章主要介紹了C# ThreadPool之QueueUserWorkItem使用案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08詳解ASP.NET中Identity的身份驗(yàn)證代碼
這篇文章主要介紹了ASP.NET Identity 的“多重”身份驗(yàn)證代碼,以及實(shí)現(xiàn)的原理講解,需要的朋友參考一下。2017-12-12C#使用Win32?Api實(shí)現(xiàn)進(jìn)程注入到wechat的過程
這篇文章主要介紹了C#使用Win32?Api實(shí)現(xiàn)進(jìn)程注入到wechat,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09C# 如何調(diào)用C++ dll string類型返回
這篇文章主要介紹了C# 如何調(diào)用C++ dll string類型返回問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11