javascript之对系统的toFixed()方法的修正


Posted in Javascript onMay 08, 2007

0.009.toFixed(2)本该返回0.01的结果,可它却返回了一个0.00,这是这个方法的一个BUG,且这个方法对客户端的JS版本要求有点偏高,至少在IE5.0里这个方法用不起来,所以我写了上面的一段修正代码,并且还解决了这个BUG的问题。若是想完全使用这个自定义的方法替代那个有BUG的系统方法的话,只需要去掉最外层的那个 if 判断就可以了。 

//by meizz

if(typeof(Number.prototype.toFixed)!="function")
{

  Number.prototype.toFixed=function (d)
  {

    var s=this+"";
    if(!d)d=0;    
    if(s.indexOf(".")==-1)s+=".";
    s+=new Array(d+1).join("0");    
    if(new RegExp("^(-|\\+)?(\\d+(\\.\\d{0,"+(d+1)+"})?)\\d*$").test(s))
    {

      var s="0"+RegExp.$2,pm=RegExp.$1,a=RegExp.$3.length,b=true;      
      if(a==d+2){
        a=s.match(/\d/g);
        if(parseInt(a[a.length-1])>4)
        {

          for(var i=a.length-2;i>=0;i--){
            a[i]=parseInt(a[i])+1;            
            if(a[i]==10){
              a[i]=0;
              b=i!=1;

            }else break;

          }

        }
        s=a.join("").replace(new RegExp("(\\d+)(\\d{"+d+"})\\d$"),"$1.$2");        

      }if(b)s=s.substr(1);
      return (pm+s).replace(/\.$/,"");

    }return this+"";    

  };  


Javascript 相关文章推荐
Firefox和IE浏览器兼容JS脚本写法小结
Jul 07 Javascript
javascript instanceof,typeof的区别
Mar 24 Javascript
Jquery中dialog属性小记
Sep 03 Javascript
Javascript学习笔记二 之 变量
Dec 15 Javascript
使用AngularJS实现可伸缩的页面切换的方法
Jun 19 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
Feb 27 Javascript
JS实现刷新父页面不弹出提示框的方法
Jun 22 Javascript
Bootstrap列表组学习使用
Feb 09 Javascript
详解Vuex中mapState的具体用法
Sep 28 Javascript
vue实现个人信息查看和密码修改功能
May 06 Javascript
VUE搭建手机商城心得和遇到的坑
Feb 21 Javascript
webpack常用构建优化策略小结
Nov 21 Javascript
javascript之大字符串的连接的StringBuffer 类
May 08 #Javascript
Javascript中的数学函数集合
May 08 #Javascript
简单的无缝滚动程序-仅几行代码
May 08 #Javascript
JavaScript多线程的实现方法
May 08 #Javascript
(转载)JavaScript中匿名函数,函数直接量和闭包
May 08 #Javascript
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
May 08 #Javascript
延时重复执行函数 lLoopRun.js
May 08 #Javascript
You might like
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
php使用parse_str实现查询字符串解析到变量中的方法
2017/02/17 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
jQuery/CSS3图片特效插件整理推荐
2014/12/07 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
微信小程序动态的加载数据实例代码
2017/04/14 Javascript
JS脚本加载后执行相应回调函数的操作方法
2018/02/28 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
Vue模板语法中数据绑定的实例代码
2019/05/17 Javascript
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
Python 获取当前所在目录的方法详解
2017/08/02 Python
Python内置模块turtle绘图详解
2017/12/09 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
详解Python中的四种队列
2018/05/21 Python
Python绘制频率分布直方图的示例
2019/07/08 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
pyqt5、qtdesigner安装和环境设置教程
2019/09/25 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
2020/01/18 Python
Django分组聚合查询实例分享
2020/04/29 Python
经典优秀个人求职自荐信格式
2013/09/25 职场文书
销售部主管岗位职责
2013/12/18 职场文书
车贷收入证明范本
2014/01/09 职场文书
初中班主任评语
2014/04/24 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
如何写好闭幕词
2019/04/02 职场文书
Python操作CSV格式文件的方法大全
2021/07/15 Python