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 继承机制的实现
Aug 12 Javascript
JQuery动态给table添加、删除行 改进版
Jan 19 Javascript
JavaScript内核之基本概念
Oct 21 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
Feb 10 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
Apr 04 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
Oct 30 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
Sep 19 Javascript
学JavaScript七大注意事项【必看】
May 04 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
Aug 14 Javascript
react中使用css的7中方式(最全总结)
Feb 11 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
Nov 13 Javascript
js实现图片上传到服务器和回显
Jan 19 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
PHP下判断网址是否有效的代码
2011/10/08 PHP
ajax在joomla中的原生态应用代码
2012/07/19 PHP
PHP递归复制、移动目录的自定义函数分享
2014/11/18 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
Zend Framework数据库操作技巧总结
2017/02/18 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
Yii框架的路由配置方法分析
2019/09/09 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
javascript定时变换图片实例代码
2013/03/17 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
jQuery模拟淘宝购物车功能
2017/02/27 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
jQuery validata插件实现方法
2017/06/25 jQuery
基于jQuery的左滑出现删除按钮的示例
2017/08/29 jQuery
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
Vue动态加载异步组件的方法
2018/11/21 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
vue实现滚动鼠标滚轮切换页面
2020/12/13 Vue.js
js实现鼠标拖曳效果
2020/12/30 Javascript
python的描述符(descriptor)、装饰器(property)造成的一个无限递归问题分享
2014/07/09 Python
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
Python实现的简单dns查询功能示例
2017/05/24 Python
使用Selenium破解新浪微博的四宫格验证码
2018/10/19 Python
Python中文编码知识点
2019/02/18 Python
Python实现仿射密码的思路详解
2020/04/23 Python
python实现最短路径的实例方法
2020/07/19 Python
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
Envie de Fraise意大利:法国网上推出的孕妇装品牌
2020/10/18 全球购物
顶碗少年教学反思
2014/02/21 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
人身损害赔偿协议书格式
2014/11/01 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript