重写toFixed方法——以既可以指定小数位又可返回数字类型

1、我们知道Math对象里的 Math.round( num ) 方法返回 num 的最接近整数,有一点近似于四舍五入的方法,这个方法只能得到整数。

2、而 num.toFixed( n )方法返回的是 num 的指定小数位数为 n 的字符串,注意:这里返回的是字符串,其实这个方法还有另一个坑,它无法把整数小数化。比如:你在控制台打印 3.toFixed(2),那么控制台会报错。

3、所以我们在很多时候需要一种方法既可以指定小数位数,同时又可以返回的是数字,在这里推荐很久以前了解过的一种方法:

function toFixed(num,d){
num *=Math.pow(10,d);
num = Math.round(num);
return num/(Math.pow(10,d));
}
 
4、 Math.pow( num ,a) 方法 返回 num 的 a 次方,所以这里巧妙的利用了这个方法以达成目的。

5、测试运行结果:

5.1 console.log( toFixed(123.4567,3) ); 

5.2 console.log( toFixed(123.4567,0) ); 

5.3 console.log( toFixed(123.4567,-1) ); 

我们看到不管是传的正数、0或者是负数,都能够正常的得到结果,所以这种方法特别赞。


————————————————
版权声明:本文为CSDN博主「猛一回头」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xie_lu/article/details/74075345

原文地址:https://www.cnblogs.com/javalinux/p/15648988.html