“四舍六入五成双”算法学习

“四舍六入五成双”又称为“四舍六入五凑偶”,是一种比较精确比较科学的计数保留法。从统计学角度来说,这种算法要比传统的“四舍五入”更精确。在大量运算时,它使舍入后的结果误差的均值趋于零,而不是像四舍五入那样逢五就入,导致结果偏向大数。

上述算法的规则如下:

根据需要保留的有效位数,其后的数字应该进行舍入。
当有效位数后一位的数字≤4时,其后的数字直接舍去;
当有效位数后一位的数字≥6时,其后数字舍去并进1;
当有效位数后一位的数字=5时,要分两种情况:

  • 5后面一位的数字如果不等于0,则舍5进1;
  • 5后面一位数字如果等于0,又要分两种情况:
    • 5的前面如果是奇数,则舍5进1;
    • 5的前面如果是偶数,则舍5不进;

JavaScript中的四舍五入方法

之前,我是一个JavaScript小白,对jQuery的理解也仅限于基本功能的使用。最近在看《JavaScript DOM编程艺术》,算是在自学一点儿基础知识。实例中有一个函数需要对结果进行四舍五入,保留小数点后一位数字。然后就查阅了W3School的参考文档,发现Number对象有一个toFixed()方法,完全符合我的要求。

toFixed(num)只有一个参数num,用来规定需要保留的小数位数,取值在0~20之间,超出这个范围则抛出异常。当然,如果调用这个方法的对象不是一个Number时也会抛出异常。

var num = 10/3;
alert(num.toFixed(2));

执行上面的代码,可以看到输出的结果是3.33