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 相关文章推荐
JQUERY对单选框(radio)操作的小例子
Apr 25 Javascript
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
Jun 05 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
Mar 02 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
Dec 23 Javascript
纯JS焦点图特效实例(可一个页面多用)
Dec 07 Javascript
详解Vue中添加过渡效果
Mar 20 Javascript
微信小程序实现顶部选项卡(swiper)
Jun 19 Javascript
Vue实现点击后文字变色切换方法
Feb 11 Javascript
微信小程序的tab选项卡的实现效果
May 15 Javascript
js简单的分页器插件代码实例
Sep 11 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
Apr 20 Javascript
Vue自定义全局弹窗组件操作
Aug 11 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 无法载入mysql扩展
2010/03/12 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
2013/06/25 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
2009/10/25 Javascript
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
JS获得浏览器版本和操作系统版本的例子
2014/05/13 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
总结js函数相关知识点
2018/02/27 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
Python中针对函数处理的特殊方法
2014/03/06 Python
python集合用法实例分析
2015/05/30 Python
Linux中Python 环境软件包安装步骤
2016/03/31 Python
Python使用pickle模块实现序列化功能示例
2018/07/13 Python
对django中render()与render_to_response()的区别详解
2018/10/16 Python
python遍历小写英文字母的方法
2019/01/02 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
毕业晚会主持词
2014/03/24 职场文书
创先争优演讲稿
2014/09/15 职场文书
如何利用STAR法则制作留学文书?
2019/08/26 职场文书