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 相关文章推荐
在网页中使用document.write时遭遇的奇怪问题
Aug 24 Javascript
jQuery 图片切换插件(代码比较少)
May 07 Javascript
模拟电子签章盖章效果的jQuery插件源码
Jun 24 Javascript
jQuery实现异步获取json数据的2种方式
Aug 29 Javascript
jQuery子属性过滤选择器用法分析
Feb 10 Javascript
js完整倒计时代码分享
Sep 18 Javascript
ES6新特性六:promise对象实例详解
Apr 21 Javascript
js生成word中图片处理方法
Jan 06 Javascript
Vue组件和Route的生命周期实例详解
Feb 10 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
Oct 08 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
Jan 29 Javascript
vue element-ui中table合计指定列求和实例
Nov 02 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 更新数据库中断的解决方法
2009/06/05 PHP
PHP开发过程中常用函数收藏
2009/12/14 PHP
PHP采集利器 Snoopy 试用心得
2011/07/03 PHP
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
2013/08/13 Javascript
javascript获取URL参数与参数值的示例代码
2013/12/20 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
jQuery中wrapAll()方法用法实例
2015/01/16 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
Python守护进程(daemon)代码实例
2015/03/06 Python
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
深入理解Python中字典的键的使用
2015/08/19 Python
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
python argparser的具体使用
2019/11/10 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
THE OUTNET英国官网:国际设计师品牌折扣网站
2016/08/14 全球购物
库房保管员岗位职责
2014/04/07 职场文书
文明城市创建标语
2014/06/16 职场文书
销售竞赛活动方案
2014/08/23 职场文书
给老师的感谢信
2015/01/20 职场文书
助学感谢信范文
2015/01/21 职场文书
贷款工作证明模板
2015/06/12 职场文书
2016年国庆节67周年活动总结
2016/04/01 职场文书
PHP基本语法
2021/03/31 PHP
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers