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访问XML数据的实例
Dec 27 Javascript
js 键盘记录实现(兼容FireFox和IE)
Feb 07 Javascript
图片onload事件触发问题解决方法
Jul 31 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
Jun 26 Javascript
分享一个自己动手写的jQuery分页插件
Aug 28 Javascript
js实现简单随机抽奖的方法
Jan 27 Javascript
使用Raygun对Node.js应用进行错误处理的方法
Jun 23 Javascript
浅谈JavaScript 标准对象
Jun 02 Javascript
微信公众平台开发教程(五)详解自定义菜单
Dec 02 Javascript
详解react使用react-bootstrap当轮子造车
Aug 15 Javascript
基于Vue自定义指令实现按钮级权限控制思路详解
May 23 Javascript
vue-router懒加载的3种方式汇总
Feb 28 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下删除字符串中HTML标签的函数
2008/08/27 PHP
10个实用的PHP代码片段
2011/09/02 PHP
PHP文件缓存类实现代码
2015/10/26 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
Javascript 作用域使用说明
2009/08/13 Javascript
浅谈Javascript嵌套函数及闭包
2010/11/09 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
2013/04/26 Javascript
javascript的函数作用域
2014/11/12 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
jQuery实现背景弹性滚动的导航效果
2016/06/01 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
基于nodejs 的多页面爬虫实例代码
2017/05/31 NodeJs
jstree单选功能的实现方法
2017/06/07 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
[01:16:13]DOTA2-DPC中国联赛 正赛 SAG vs Dragon BO3 第一场 2月22日
2021/03/11 DOTA
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
Python从Excel中读取日期一列的方法
2018/11/28 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
sleep()方法和wait()方法的区别是什么
2012/11/17 面试题
大学新生军训感言
2014/02/25 职场文书
企业文明单位申报材料
2014/05/16 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书