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 相关文章推荐
CSS常用网站布局实例
Apr 03 Javascript
javascript 按回车键相应按钮提交事件
Nov 02 Javascript
javascript eval和JSON之间的联系
Dec 31 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
Apr 27 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
May 27 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
Nov 15 Javascript
jQuery实现给input绑定回车事件的方法
Feb 09 Javascript
Vue数据双向绑定原理及简单实现方法
May 18 Javascript
基于AngularJs select绑定数字类型的问题
Oct 08 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
Oct 12 Javascript
node删除、复制文件或文件夹示例代码
Aug 13 Javascript
原生JS实现烟花效果
Mar 10 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
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
浅谈AngularJS中ng-class的使用方法
2016/11/11 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
vue-router history模式下的微信分享小结
2018/07/05 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
十分钟教你上手ES2020新特性
2020/02/12 Javascript
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
Python字符串的常见操作实例小结
2019/04/08 Python
Django单元测试工具test client使用详解
2019/08/02 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
Python实现直播推流效果
2019/11/26 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
浅析python中的del用法
2020/09/02 Python
python通用数据库操作工具 pydbclib的使用简介
2020/12/21 Python
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
自我评价怎么写好呢?
2013/12/05 职场文书
入股协议书范本
2014/04/14 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
幼儿园小班家长评语
2014/12/30 职场文书
2016年4月份红领巾广播稿
2015/12/21 职场文书
python入门之算法学习
2021/04/22 Python
mysql数据库隔离级别详解
2022/06/16 MySQL