C 如何做到真正的四捨五入

2021-07-10 08:53:26 字數 468 閱讀 7231

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...