JavaScript中的四舍五入方法

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

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

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

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

num参数可以省略,如果省略的话,默认将用0代替,即四舍五入为整数。

值得注意的是,toFixed方法在不同浏览器下表现可能会有差异。比如

var money=0.00542;//0.006;
alert(Number(money).toFixed(2));
//在IE6~7中为0.00

显然,这个方法是需要改进的。用Math对象的Round方法写一个函数即可解决。

//对数值进行四舍五入的函数
function roundNum(number,fDigits){  
    with(Math){  
        return round(number*pow(10,fDigits))/pow(10,fDigits);  
    }  
}
//用roundNum函数对数值进行四舍五入操作
function showNum() {
	var num = 0.006;
	alert(roundNum(num,2));
}

执行上面的代码后我们可以看到,输出的结果是0.01,是正确的。round方法是返回与给出的数值表达式最接近的整数。如果 number 的小数部分大于等于 0.5,返回值是大于 number 的最小整数。否则,round 返回小于等于 number 的最大整数。

本文为原创,转载请注明来自 THIS IS IT - 夜色冷月,并保留原文链接

相关日志

已留下 2 个脚印

  1. 学习了

Trackbacks/Pingbacks

  1. “四舍六入五成双”算法学习 / THIS IS IT - 夜色冷月 - [...] JavaScript中的四舍五入方法 [...]

留下足迹