JS的toFixed方法出错 重写

toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。通俗点就是传入的参数是几,那么我们的小数就保留几位。

eg: alert(0.056.toFixed(2));-->0.06

但是使用过程中发现了一个小问题 ,就是0.0056.toFixed(2)结果却为0.00

遂重写toFixed()

代码如下:

 

Js代码   收藏代码
  1. //重写toFixed方法  
  2.     Number.prototype.toFixed=function(len)  
  3.     {  
  4.         var tempNum = 0;  
  5.         var s,temp;  
  6.         var s1 = this + "";  
  7.         var start = s1.indexOf(".");  
  8.           
  9.         //截取小数点后,0之后的数字,判断是否大于5,如果大于5这入为1  
  10.   
  11.        if(s1.substr(start+len+1,1)>=5)  
  12.         tempNum=1;  
  13.   
  14.         //计算10的len次方,把原数字扩大它要保留的小数位数的倍数  
  15.       var temp = Math.pow(10,len);  
  16.         //求最接近this * temp的最小数字  
  17.         //floor() 方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数  
  18.         s = Math.floor(this * temp) + tempNum;  
  19.         return s/temp;  
  20.   
  21.     }  

 

现在再试试alert(0.0056.toFixed(2));结果就为0.01啦!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值