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 相关文章推荐
单独使用CKFinder选择图片的方法
Aug 21 Javascript
让图片旋转任意角度及JQuery插件使用介绍
Mar 20 Javascript
鼠标滚轮控制网页横向移动实现思路
Mar 22 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
Nov 10 Javascript
node.js中的fs.writeFile方法使用说明
Dec 14 Javascript
jQuery插件zepto.js简单实现tab切换
Jun 16 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
Apr 06 Javascript
理解 javascript 中的函数表达式与函数声明
Jul 07 Javascript
swiper插件自定义切换箭头按钮
Dec 28 Javascript
详解Vue.js v-for不支持IE9的解决方法
Dec 29 Javascript
JS实现带阴历的日历功能详解
Jan 24 Javascript
基于JavaScript实现留言板功能
Mar 16 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输出xml属性的方法
2015/03/19 PHP
Yii2前后台分离及migrate使用(七)
2016/05/04 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
Document:getElementsByName()使用方法及示例
2013/10/28 Javascript
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
jQuery简单操作cookie的插件实例
2016/01/13 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
Angular+Node生成随机数的方法
2017/06/16 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
JS实现横向轮播图(初级版)
2020/06/24 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
pyqt4教程之messagebox使用示例分享
2014/03/07 Python
python批量提交沙箱问题实例
2014/10/08 Python
详解Python之unittest单元测试代码
2018/01/24 Python
python 多线程对post请求服务器测试并发的方法
2019/06/13 Python
快速查找Python安装路径方法
2020/02/06 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
简单html5代码获取地理位置
2014/03/31 HTML / CSS
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
德国的大型美妆个护电商:Flaconi
2020/06/26 全球购物
材料工程专业毕业生求职信
2014/03/04 职场文书
入职担保书怎么写
2014/05/12 职场文书
美术课外活动总结
2014/07/08 职场文书
承诺书样本
2014/08/30 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书