轉載自:http://dlix.bokee.com/5956750.html
C#,java,vbscript都是採用的四捨六入五成雙(下有解釋)。
SQL server 使用的是四捨五入。
C#如 Math.Round(1.25,1) = 1.2。
SQL 中 select round(1.25,1) 返回的是1.3。
C#中實現四捨五入的參考代碼:
如2.45要四捨五入到小數後一位,可以先給2.45*10,然後加0.5,再取整,再除以10就OK了
public double C1Round(double value, int digit)
{
double vt = Math.Pow(10, digit);
double vx = value * vt;
vx +=0.5;
return (Math.Floor(vx) / vt);
}
四捨六入五成雙
四捨六入五成雙是一種精確度的計數保留法.舍入規律是"四捨六入五成雙",這裡"四"是小於五的意思,"六"是大於五的意思,"五"是舍入位之後的尾數逢五的話看前一位,奇進偶不進,就像1.25,因為2是偶數,所以是1.2。又像1.35,因為3是奇數,所以是1.4,明不明白,這個是資料統計需要的.
從統計學的角度,"四捨六入五成雙"比"四捨五入"要科學,它使舍入後的結果有的變大,有的變小,更平均.而不是像四捨五入那樣逢五就入,導致結果偏向大數.
例如:1.15+1.25+1.35+1.45=5.2,若按四捨五入取一位小數計算
1.2+1.3+1.4+1.5=5.4
按"四捨六入五成雙"計算,1.2+1.2+1.4+1.4=5.2,舍入後的結果更能反映實際結果
作者:冰碟
出處:http://www.cnblogs.com/icebutterfly/
著作權:本文著作權歸作者和部落格園共有
轉載:歡迎轉載,為了儲存作者的創作熱情,請按要求【轉載】,謝謝
要求:未經作者同意,必須保留此段聲明;必須在文章中給出原文串連;否則必究法律責任