c#中的math.round()並不是使用的"四捨五入"法。其實在vb、vbscript、c#、j#、t-sql中round函式都是採用banker's rounding(銀行家演算法),即:四捨六入五取偶。事實上這也是ieee的規範,因此所有符合ieee標準的語言都應該採用這樣的演算法。
math.round(0.5) == 0
但是想實現真正以上的上四捨五入該怎麼辦呢?
math.round(value,midpointrounding.awayfromzero);
math.round(0.5,midpointrounding.awayfromzero) == 1
如果想保留幾位小數,寫法跟以前還是一樣的,舉個栗子
math.round(0.55555,2,midpointrounding.awayfromzero) == 0.56
js toFixed 真正四捨五入
真正四捨五入 tofixed相容方法,四捨五入 number.prototype.tofixed function len 123轉為0.123 var number number this if isnan number number math.pow 10,21 if typeof len un...
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...