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 11 Javascript
jQuery DOM操作小结与实例
Jan 07 Javascript
JavaScript基本编码模式小结
May 23 Javascript
微信小程序 wxapp画布 canvas详细介绍
Oct 31 Javascript
Node.JS中事件轮询(Event Loop)的解析
Feb 25 Javascript
JavaScript瀑布流布局实现代码
May 06 Javascript
Vue中的异步组件函数实现代码
Jul 20 Javascript
vue-better-scroll 的使用实例代码详解
Dec 03 Javascript
Node.js Stream ondata触发时机与顺序的探索
Mar 08 Javascript
ios中视频的最后一桢问题解决
May 14 Javascript
使用vue实现各类弹出框组件
Jul 03 Javascript
解决layui动态添加的元素click等事件触发不了的问题
Sep 20 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生成随机数或者字符串的代码
2008/09/05 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
php.ini中的request_order推荐设置
2015/05/10 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
php事件驱动化设计详解
2016/11/10 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
js 获取服务器控件值的代码
2010/03/05 Javascript
JavaScript基础知识之数据类型
2012/08/06 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
js实现类似菜单风格的TAB选项卡效果代码
2015/08/28 Javascript
jquery实现删除一个元素后面的所有元素功能
2015/12/21 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
浅谈vue项目如何打包扔向服务器
2018/05/08 Javascript
基于vue中keep-alive缓存问题的解决方法
2018/09/21 Javascript
详解vue中使用protobuf踩坑记
2019/05/07 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
python实现数通设备端口监控示例
2014/04/02 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
基于pytorch的保存和加载模型参数的方法
2019/08/17 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
一年级语文下册复习计划
2015/01/17 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
2015年教师国培感言
2015/08/01 职场文书
django上传文件的三种方式
2021/04/29 Python