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学习笔记之jQuery的DOM操作
Dec 22 Javascript
jquery浏览器滚动加载技术实现方案
Jun 03 Javascript
jquery实现多条件筛选特效代码分享
Aug 28 Javascript
深入理解js数组的sort排序
May 28 Javascript
jQuery动态添加与删除tr行实例代码
Oct 18 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
Apr 07 Javascript
jquery实现放大镜简洁代码(推荐)
Jun 08 jQuery
javascript计算对象长度的方法
Oct 25 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
Nov 20 Javascript
vue-router动态设置页面title的实例讲解
Aug 30 Javascript
小程序登录之支付宝授权的实现示例
Dec 13 Javascript
小程序表单认证布局及验证详解
Jun 19 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
亚洲咖啡有什么?亚洲咖啡产地介绍 亚洲咖啡有什么特点?
2021/03/05 新手入门
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
PHP中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
2014/12/16 PHP
php获取twitter最新消息的方法
2015/04/14 PHP
JavaScript中的Document文档对象
2008/01/16 Javascript
Javascript 写的简单进度条控件
2008/01/22 Javascript
JQuery index()方法使用代码
2010/06/02 Javascript
一个javascript图片阅览组件
2010/11/09 Javascript
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
js中自定义方法实现停留几秒sleep
2014/07/11 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
Python实现带百分比的进度条
2016/06/28 Python
python使用matplotlib画饼状图
2018/09/25 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
TensorFlow实现批量归一化操作的示例
2020/04/22 Python
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
德国隐形眼镜店:LuckyLens
2018/07/29 全球购物
2015年护士节慰问信
2015/03/23 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书
Django利用AJAX技术实现博文实时搜索
2021/05/06 Python