1. 程式人生 > >C# 小數點後保留兩位小數,四捨五入的函式及使用方法

C# 小數點後保留兩位小數,四捨五入的函式及使用方法

1 Math.Round(45.367,2)     //Returns   45.37
2 Math.Round(45.365,2)     //Returns   45.36

 C#中的Round()不是我們中國人理解的四捨五入,是老外的四捨五入,是符合IEEE標準的四捨五入,具體是四捨六入,下面的才是符合中國人理解的四捨五入

Math.Round(45.367,2,MidpointRounding.AwayFromZero);     //Returns   45.37
Math.Round(45.365,2,MidpointRounding.AwayFromZero);     //Returns   45.37   

備註:根據網在留言板反饋,傳入的引數如果是double型別的,其實得到的結果還是不會四捨五入(double精度不夠導致的)
所以上面的更嚴謹的寫法應該是:將傳入的引數預設轉換為decimal型別,確保其在四捨五入之前精度不會降下來。因為decimal精度高於double

最終版:
Math.Round(Convert.ToDecimal(45.367),2,MidpointRounding.AwayFromZero);     //Returns   45.37
Math.Round(Convert.ToDecimal(45.365),2,MidpointRounding.AwayFromZero);     //Returns   45.37