2009年11月17日 星期二

C# 的 Decimal 小數點很麻煩...

最近在算成績時發現,float 真的是不能拿來算成績,不只是不適合算錢,連滿分只有100分的成績也不能算,會算出一堆誤差,花了一堆時間查了半天終於發現有個叫「decimal」型態,有效位數非常大,專用在財務方面的資料型態,decimal 捨入計算誤差非常非常少,後來就全面使用 decimal 來算成績,可是又發現計算結果總是有「.00」出現,就算計算結果是整數,還是有那個00...要拿掉非常麻煩...,又搞了半天,終於發現終極解法,就是運算、儲存時全部用 decimal ,但是要輸出到報表就全部轉型成 float、double,雖然還是有點麻煩,不過算是較簡單的解法了。float、double 不適合運算,但是運算結果輸出去到是很適合,因為成績的圍範就滿分100,最多小數到2位,跟本不會超出 float 的圍範...吧....

我的目得只是要計算結果不能有誤差,但是結果的尾數是0的要去掉...就這樣..

1 則留言: