my favorite

2007/11/27

C# Round (四捨五入) 使用 ToString()

使用過Math.Round與decimal.Round的兩個數學函式後
發現都是屬於四捨六入五留雙的作法。
所謂的四捨六入,就是依單位取完概數後,直接依照第一個小數點作捨與入的動作
例如取到整數時,1.55進位為2,2.5進位為3
然而,如果是1.5與2.5呢,在取到整數時,四捨六入的概念下,1.5與2.5都會變成2
同理,對於所有的實數域來說,可參考如下圖
所以,這做法儼然不適合應用於傳統四捨五入的系統中。
接續在網路上遍尋不著C#四捨五入的方法,所以只好自己寫一個
但是又不死心,後來總算給我找到這罐7-11的醬油,那就是ToString();
舉例來說:
Decimal _dec = 1.357M;
_dec.ToString("0") → 1
_dec.ToString("0.0") → 1.4
_dec.ToString("0.00") → 1.36

2 comments:

cam said...

就肝心~沒想到找ToString居然會一下就看到HUGE的BLOG 太酷了XD

Huge said...

學弟真是太強了 xD

BIO

Taipei, GuTing, Taiwan

huang47 | personal

huang47 | personal