2010年1月24日星期日

[C#] 四捨五入

在C#便用Math.Round(),得出的結果並非慣常的四捨五入。

當進位時,若果是介於中間的數,給果會取決於捨位後的數值是基數還是偶數,系統會挑偶數作為捨位後的結果。例如2.5要捨位為整數,結果會是2,因為3是基數。

其實C#的Math.Round()有提供一個overload method可以該我們選擇使用甚麼方式捨位。
Math.Round(Double, MidpointRounding)

MidpointRounding是一個Enumeration,他包括了兩個members:
ToEven
AwayFromZero

ToEven就是原來這個捨位後的最接近的偶數。
AwayFromZero就是四捨五入了。

使用例子:
double naturalNumber = Math.Round( 1.2534, 1, MidpointRounding.AwayFromZero );
結果:

naturalNumber會是1.3

沒有留言:

發佈留言