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 相关文章推荐
符合W3C网页标准的iframe标签的使用方法
Jul 19 Javascript
jQuery代码优化 选择符篇
Nov 01 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
Aug 26 Javascript
你可能不知道的JavaScript的new Function()方法
Apr 17 Javascript
浅谈Jquery为元素绑定事件
Apr 27 Javascript
JavaScript淡入淡出渐变简单实例
Aug 06 Javascript
JS+CSS3制作炫酷的弹窗效果
Nov 08 Javascript
jquery.Callbacks的实现详解
Nov 30 Javascript
jQuery插件echarts去掉垂直网格线用法示例
Mar 03 Javascript
Bootstrap模态框(Modal)实现过渡效果
Mar 17 Javascript
bootstrap 通过加减按钮实现输入框组功能
Nov 15 Javascript
javascript实现超好看的3D烟花特效
Jan 01 Javascript
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
桌面中心(四)数据显示
2006/10/09 PHP
PHP4实际应用经验篇(2)
2006/10/09 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
在Windows XP下安装Apache+MySQL+PHP环境
2015/02/22 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
javaScript parseInt字符转化为数字函数使用小结
2009/11/05 Javascript
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
2011/11/10 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
浅谈jquery事件处理
2015/04/24 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
2017/07/24 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(下)
2018/04/18 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
python实现批量转换图片为黑白
2020/06/16 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
Django Auth用户认证组件实现代码
2020/10/13 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
pycharm远程连接服务器并配置python interpreter的方法
2020/12/23 Python
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
什么是反射
2012/03/17 面试题
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android