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 相关文章推荐
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
Nov 30 Javascript
JS的get和set使用示例
Feb 20 Javascript
JavaScript获取指定元素位置的方法
Apr 08 Javascript
javascript实现简单查找与替换的方法
Jul 22 Javascript
jQuery编程中的一些核心方法简介
Aug 14 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
Jun 14 Javascript
AngularJS实现使用路由切换视图的方法
Jan 24 Javascript
Ajax和Comet技术总结
Feb 19 Javascript
vue.js系列中的vue-fontawesome使用
Feb 10 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
Quasar Input:type=&quot;number&quot; 去掉上下小箭头 实现加减按钮样式功能
Apr 09 Javascript
javascript 使用sleep函数的常见方法详解
Apr 26 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来检测proxy
2006/10/09 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
PHP callback函数使用方法和注意事项
2015/01/23 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
Javascript 中 null、NaN和undefined的区别总结
2013/04/10 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
Layui事件监听的实现(表单和数据表格)
2019/10/17 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
vue同个按钮控制展开和折叠同个事件操作
2020/07/29 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
浅析Python中元祖、列表和字典的区别
2016/08/17 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
Numpy之random函数使用学习
2019/01/29 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
2020/06/29 Python
军训口号
2014/06/13 职场文书
财会专业毕业生自荐信
2014/07/09 职场文书
四风查摆剖析材料
2014/10/10 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
搬迁通知
2015/04/20 职场文书
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python