c 簡單又好用的四捨五入方法

2021-12-29 16:21:20 字數 968 閱讀 4756

aspx?t=topicswithsametag&tagid=426">四捨五入是軟體開發中經常遇到的問題,我也在不止乙個專案中用到這方面的運算;關於c#的四捨五入,如果你去網上蒐會有好多結果,但大部分的內容都是說微軟的math.round() 不準確,屬於「四捨六入五成雙」,然後會有很多人自己去寫方法來實現,有的很簡單,有的很複雜,有的還不對;

其實要實現這個功能,真的不用這麼麻煩;大家既然知道c#有math.round(),難道就沒發現它有多大8個過載方法嗎,其中有乙個型別是midpointrounding的引數,只要我們很好的利用它,就完全可以實現很精確的四捨五入,根本不用寫那麼複雜的方法。

midpointrounding:指定數學捨入方法應如何處理兩個數字間的中間值。

下表演示與 midpointrounding 的值結合使用的某些正數和負數的捨入結果。在捨入數字時所使用的精度是零,這意味著小數點之後的數字會影響捨入運算。例如,對於數字 -2.5,小數點之後的數字是 5。由於該數字是中間值,因此您可以使用 midpointrounding 值來確定捨入結果。如果指定了 awayfromzero,則將返回 -3,因為它是精度為零且與零最接近的數字。如果指定了 toeven,則將返回 -2,因為它是精度為零的最接近的偶數。

原始數字

取絕對值較大的值

取偶數3.544

2.83

32.532

2.12

2-2.1

-2-2

-2.5

-3-2

-2.8

-3-3

-3.5

-4-4

不用我再解釋了吧,假如像把3.455四捨五入到3.46,實際上只需要用下面的**就可以

******************************

math.round( 3.455, 2, midpointrounding.awayfromzero)

******************************

c 簡單又好用的四捨五入方法

四 舍五入 是軟體開發中經常遇到的問題,我也在不止乙個專案中用到這方面的運算 關於 c 的 四捨五入,如果你去網上蒐會有好多結果,但大部分的內容都是說微軟的 math.round 不準確,屬於 四捨六入五成雙 然後會有很多人自己去寫方法來實現,有的很簡單,有的很複雜,有的還不對 其實要實現這個功能,...

C 四捨五入的方法

c 四捨五入的方法 原創半開半落 發布於2019 06 17 22 12 39 閱讀數 2423 收藏 展開在c 中要實現四捨五入的方法主要有三種 1一.使用round 方法進行輸出 double z1 55.686 double z math.round z1,2 輸出結果為 55.69 deci...

c 四捨五入

在處理一些資料時,我們希望能用 四捨五入 法實現,但是c 採用的是 四捨六入五成雙 的方法,如下面的例子,就是用 四捨六入五成雙 得到的結果 double d1 math.round 1.25,1 1.2double d2 math.round 1.24,1 1.2double d3 math.ro...