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 相关文章推荐
Add a Table to a Word Document
Jun 15 Javascript
Google Map Api和GOOGLE Search Api整合实现代码
Jul 18 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
Oct 11 Javascript
json2.js的初步学习与了解
Oct 06 Javascript
基于jQuery实现的百度导航li拖放排列效果,即时更新数据库
Jul 31 Javascript
javascript window.confirm确认 取消对话框实现代码小结
Oct 21 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
Nov 18 Javascript
Javascript中的delete操作符详细介绍
Jun 06 Javascript
JS判断页面是否出现滚动条的方法
Jul 17 Javascript
jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
Jun 08 Javascript
浅谈angular2 组件的生命周期钩子
Aug 12 Javascript
微信小程序如何获取用户收货地址
Nov 27 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开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
PHP实现动态添加XML中数据的方法
2018/03/30 PHP
PHP快速排序算法实现的原理及代码详解
2019/04/03 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
Bootstrap按钮下拉菜单组件详解
2016/05/10 Javascript
Nodejs进阶:如何将图片转成datauri嵌入到网页中去实例
2016/11/21 NodeJs
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
如何用原生js写一个弹窗消息提醒插件
2019/05/24 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
[01:20:05]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第二场 2月5日
2021/03/11 DOTA
Python模块学习 filecmp 文件比较
2012/08/27 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
python实现倒计时小工具
2019/07/29 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
新驾驶员个人自我评价
2014/01/03 职场文书
项目合作计划书
2014/01/09 职场文书
小学生环保演讲稿
2014/04/25 职场文书
减负增效提质方案
2014/05/23 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
2015年社区计生工作总结
2015/04/21 职场文书