[C#] Math.Round 正確的使用四捨五入,解決有時候沒有進位的問題

在撰寫 .Net 運算相關的程式碼的時候,會很常遇到當你需要四捨五入時,系統算出的解果不是我們日常生活中的運算結果,舉個簡單的小例子:

當我們有 1.5 跟 2.5 的數字要使用 Math.Round 對整數四捨五入時就會發現,輸出都是 “2”,那究竟為甚麼 .Net 會輸出這樣的結果出來呢?這是因為 .Net 所使用的四捨五入算法是”銀行家”算法(銀行家算法:四捨六入五考慮,五後非零就進一,五後為零看奇偶,五前為偶應捨去,五前為奇要進一),所以會導致出來的結果會跟我們平常學習的四捨五入不相同。

Math.Round(1.5);     //output: 2
Math.Round(2.5);     //output: 2
繼續閱讀