js toFixed()方法的重写实现精度的统一


Posted in Javascript onMarch 06, 2014

但凡用过js 中的toFix() 方法的, 应该都知道这个方法存在一个小小的BUG。
在IE 下和FF 下对于小数的进位有点不同。
例如( 0.005)在ie 下 toFix(2)=0.00. 在FF 下 toFix(2)=0.01.
这样就会造成数据的差异。
我们可以通过 重写 这个方法来实现精度的统一。

Number.prototype.toFixed = function(s) 
{ 
return (parseInt(this * Math.pow( 10, s ) + 0.5)/ Math.pow( 10, s )).toString(); 
}

但是这样做仍然有一个问题, 在所有的浏览器下, String("0.050").toFix(2)=0.1
我们可以看到这样你原本要保留两位小数却变成了一位。 也就是说。这个重写只有的toFixed() 会自动舍弃最后的0.
我们需要对这个方法做进一步的处理。
Number.prototype.toFixed = function(s) 
{ 
changenum=(parseInt(this * Math.pow( 10, s ) + 0.5)/ Math.pow( 10, s )).toString(); 
index=changenum.indexOf("."); 
if(index<0&&s>0){ 
changenum=changenum+"."; 
for(i=0;i<s;i++){ 
changenum=changenum+"0"; 
} }else { 
index=changenum.length-index; 
for(i=0;i<(s-index)+1;i++){ 
changenum=changenum+"0"; 
} 
} 
return changenum; 
}
Javascript 相关文章推荐
JavaScript 学习笔记(十一)
Jan 19 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
Dec 31 Javascript
jQuery中Form相关知识汇总
Jan 06 Javascript
AngularJS中的模块详解
Jan 29 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
Apr 16 Javascript
jquery操作angularjs对象
Jun 26 Javascript
JS绘制生成花瓣效果的方法
Aug 05 Javascript
JavaScript html5 canvas绘制时钟效果
Mar 01 Javascript
利用js定义一个导航条菜单
Mar 14 Javascript
详解webpack4.x之搭建前端开发环境
Mar 28 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
Jun 12 jQuery
jQuery - AJAX load() 实例用法详解
Aug 27 jQuery
button没写type=button会导致点击时提交
Mar 06 #Javascript
使用jQuery时Form表单元素ID和name命名大忌
Mar 06 #Javascript
js字符串日期yyyy-MM-dd转化为date示例代码
Mar 06 #Javascript
浅析JS中document对象的一些重要属性
Mar 06 #Javascript
浅析jquery的js图表组件highcharts
Mar 06 #Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
Mar 06 #Javascript
javascript简单实现命名空间效果
Mar 06 #Javascript
You might like
PHP对象Object的概念 介绍
2012/06/14 PHP
PHP使用glob函数遍历目录或文件夹的方法
2014/12/16 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
php与python实现的线程池多线程爬虫功能示例
2016/10/12 PHP
php报错502badgateway解决方法
2019/10/11 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
JavaScript 原型继承之构造函数继承
2011/08/26 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
jQuery性能优化的38个建议
2014/03/04 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
2014/11/26 Javascript
3种Jquery限制文本框只能输入数字字母的方法
2014/12/03 Javascript
jQuery使用之处理页面元素用法实例
2015/01/19 Javascript
Javascript中作用域的详细介绍
2016/10/06 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
小程序实现可拖动的悬浮按钮
2020/09/07 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
2020/09/21 Javascript
python 统计数组中元素出现次数并进行排序的实例
2018/07/02 Python
大学生毕业自荐信
2013/10/10 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
师德演讲稿范文
2014/05/06 职场文书
优秀员工演讲稿
2014/05/19 职场文书
植物生产学专业求职信
2014/08/08 职场文书
对照检查剖析材料
2014/09/30 职场文书
维稳承诺书
2015/01/20 职场文书
雨中的树观后感
2015/06/03 职场文书
美容院管理规章制度
2015/08/05 职场文书
2019最新企业员工考勤管理制度(通用版)!
2019/07/02 职场文书
nginx+lua单机上万并发的实现
2021/05/31 Servers
解析在浏览器地址栏输入一个URL后发生了什么
2021/06/21 Servers
在HTML中引入CSS的几种方式介绍
2021/12/06 HTML / CSS