2012年9月17日 星期一

{C#} 對數值四捨五入


Math.Round() ,Decimal.Round() 這兩個函式>>前一位為奇數則進位;反之則不進位(就算大於5,也不進位)
Decimal.Round(1.45,1)>>1.4
Decimal.Round(1.55,1)>>1.6


實現四捨五入:
1.無條件進位=>Math.Ceiling()  ;  無條件捨去=>Math.Floor()
        四捨五入
        dNum = 12.5;
        dNum = Math.Floor(dNum+0.5);

       取小數後兩位
       dNum = 0.1312141231;
       dNum = Math.Floor(dNum*100+0.5) / 100;

2.利用ToString()
       double dd = 300.56;
       dd.ToString("0"); --> 結果是 301
       dd.ToString("0.0"); --> 結果是 300.6

3.Decimal.Round參數
(數值,取小數幾位, 不管小數第二位為奇或偶數值,第三位過五(含五)就進位)
decimal.Round(Quota, 2, MidpointRounding.AwayFromZero)





參考來源:
http://blog.yam.com/terrytg259/article/26728510
http://msdn.microsoft.com/zh-tw/library/6be1edhb%28v=vs.80%29.aspx
http://msdn.microsoft.com/zh-tw/library/system.midpointrounding(v=vs.80).aspx