1.数值扩展和修复
toFixed(num) 方法可把 Number 四舍五入为指定小数位数的数字。num必需,规定小数的位数,是 0 ~ 20 之间的值,包括 0 和 20,有些实现可以支持更大的数值范围。如果省略了该参数,将用 0 代替。返回 NumberObject 的字符串表示,不采用指数计数法,小数点后有固定的 num 位数字。如果必要,该数字会被舍入,也可以用 0 补足,以便它达到指定的长度。如果 num 大于 le+21,则该方法只调用 NumberObject.toString(),返回采用指数计数法表示的字符串。
但在有些浏览器下不会这样干,于是修复:
if(0.9.toFixed(0) !==’1’){
Number.prototype.toFixed = function(n){
var power = Math.pow(10,n); //Math.pow(x,y),返回 x 的 y 次幂的值
var fixed = (Math.round(this*power) / power).toString(); //把一个数字舍入为最接近的整数。比如:0.5->1,0.4->0
if(n == 0) return fixed; //当n等于0时,就直接调用round方法,把num四舍五入为最接近num的整数
if(fixed.indexOf(‘.’)<0) fixed + = ‘.’; //如果是整数,并且n>0,那么需要添加n位小数。所以先添加小数点.
var padding = n+1 - (fixed.length - fixed.indexOf(‘.’)); //小数点后面必须有n个数字。没有就用0填补
for(var i=0;i