math.round()準確的說,這個函式不是四捨五入,而是四捨六入五湊偶,就是說小於4或大於6的該舍該入是沒有爭議的,而5處在正中間,如果四捨五入則會造成資料的整體偏差,所以採取的原則是:如果捨入位為5,則捨入後最後一位為偶數,這是國際慣例。
c# 中沒有四捨五入函式,事實上我知道的程式語言都沒有四捨五入函式,因為四捨五入演算法不科學,國際通行的是 banker 捨入法 banker 's rounding(銀行家捨入)演算法,即四捨六入五取偶。事實上這也是 ieee 規定的捨入標準。因此所有符合 ieee 標準的語言都應該是採用這一演算法的。
下面的這段**能實現嚴格的四捨五入:
publicstatic
double round(double num, int
prec)
int ivalue = 1
;
for (int i = 1; i <= prec; i++)
double int = math.round(num * ivalue + 0.5, 0
); num = int /ivalue;
if(isnegative)
return
num;
}
c 四捨五入
在處理一些資料時,我們希望能用 四捨五入 法實現,但是c 採用的是 四捨六入五成雙 的方法,如下面的例子,就是用 四捨六入五成雙 得到的結果 double d1 math.round 1.25,1 1.2double d2 math.round 1.24,1 1.2double d3 math.ro...
c 四捨五入
math.round跟conver.toint32一樣,都是使用四捨六入五成雙的規則,例如 math.round 3.2 返回3 math.round 3.6 返回4 math.round 3.5 返回4 math.round 2.5 返回2 要做到四捨五入,可加上引數midpointroundin...
C 四捨五入
在處理一些資料時,我們希望能用 四捨五入 法實現,但是c 採用的是 四捨六入五成雙 的方法,如下面的例子,就是用 四捨六入五成雙 得到的結果 double d1 math.round 1.25,1 1.2double d2 math.round 1.24,1 1.2double d3 math.ro...