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 相关文章推荐
node.js中的querystring.escape方法使用说明
Dec 10 Javascript
分享一个常用的javascript静态类
Dec 31 Javascript
jQuery中:radio选择器用法实例
Jan 03 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
Dec 29 Javascript
js数组方法reduce经典用法代码分享
Jan 07 Javascript
webstorm中vue语法的支持详解
May 09 Javascript
layui 监听select选择 获取当前select的ID名称方法
Sep 24 Javascript
js消除图片小游戏代码
Dec 11 Javascript
jquery检测上传文件大小示例
Apr 26 jQuery
在vue中实现嵌套页面(iframe)
Jul 30 Javascript
Javascript如何递归遍历本地文件夹
Aug 06 Javascript
Vue 3自定义指令开发的相关总结
Jan 29 Vue.js
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中的Base62类(适用于数值转字符串)
2013/08/12 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
php根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
Yii 2.0实现联表查询加搜索分页的方法示例
2017/08/02 PHP
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
2012/10/11 Javascript
异步javascript的原理和实现技巧介绍
2012/11/08 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
JavaScript中document.forms[0]与getElementByName区别
2015/01/21 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
python去掉空白行的多种实现代码
2018/03/19 Python
python+Splinter实现12306抢票功能
2018/09/25 Python
python适合人工智能的理由和优势
2019/06/28 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
中科软笔试题和面试题
2014/10/07 面试题
创业计划书如何编写
2014/02/06 职场文书
小学新学期寄语
2014/04/02 职场文书
标准的毕业生自荐信
2014/04/20 职场文书
教师个人读书活动总结
2014/07/08 职场文书
企业法人授权委托书范本
2014/09/23 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
先进单位事迹材料
2014/12/25 职场文书
部门2015年度工作总结
2015/04/29 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书