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 相关文章推荐
ajax无刷新动态调用股票信息(改良版)
Nov 01 Javascript
JsDom 编程小结
Aug 09 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
Sep 29 Javascript
5分钟理解JavaScript中this用法分享
Nov 09 Javascript
php实例分享之实现显示网站运行时间
May 20 Javascript
JavaScript实现列出数组中最长的连续数
Dec 29 Javascript
JS获取图片高度宽度的方法分享
Apr 17 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
Aug 26 Javascript
IE8兼容Jquery.validate.js的问题
Dec 01 Javascript
JavaScript实现数组降维详解
Jan 05 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
Sep 12 jQuery
js实现登录时记住密码的方法分析
Apr 05 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 DataGrid 实现代码
2009/08/12 PHP
php 不同编码下的字符串长度区分
2009/09/26 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
php实现搜索类封装示例
2016/03/31 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
基于jQuery的图片大小自动适应实现代码
2010/11/17 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
异步加载script的代码
2011/01/12 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
slideToggle+slideup实现手机端折叠菜单效果
2017/05/25 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
2019/07/31 Python
Pytorch之保存读取模型实例
2019/12/30 Python
介绍一下Java中的Class类
2015/04/10 面试题
办公室文书岗位职责
2013/12/16 职场文书
安全生产实施方案
2014/02/23 职场文书
纠纷协议书
2014/04/16 职场文书
小学见习报告
2014/10/31 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书