四捨五入 C# VB

來源:http://www.dotblogs.com.tw/jeff-yeh/archive/2009/06/15/8834.aspx

.Net
Math.round(-0.51)=-1
Math.round(-0.5) = 0<=竟然沒有進位!
Math.round(-0.49)=0

那要怎麼做才能達到我們”原本預期”的四捨五入?
在.Net 2.0以上的Math.round多了一個MidpointRounding的參數可以傳入.
MidpointRounding.ToEven [Banker’s Rounding]
MidpointRounding.AwayFromZero [這就是大家小學所熟悉的四捨五入]
用法 :
Math.round(0.5,0,MidpointRounding.AwayFromZero) = 1

宣告 變數形態要Decimal 才會真的是四捨五入
Math.round(Decimal.Parse(Price),2,MidpointRounding.AwayFromZero) = 1

張貼留言

0 留言