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_01_isPlainObject分析与重构
Oct 20 Javascript
JavaScript的setAttribute兼容性问题解决方法
Nov 11 Javascript
终于实现了!精彩的jquery弹幕效果
Jul 18 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
Dec 08 Javascript
详解Angular.js指令中scope类型的几种特殊情况
Feb 21 Javascript
详解Node项目部署到云服务器上
Jul 12 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
Aug 18 Javascript
浅谈vue的props,data,computed变化对组件更新的影响
Jan 16 Javascript
详解Vue.js v-for不支持IE9的解决方法
Dec 29 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
May 10 Javascript
微信小程序Echarts图表组件使用方法详解
Jun 25 Javascript
多种类型jQuery网页验证码插件代码实例
Jan 09 jQuery
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导航下拉菜单的实现如此简单
2013/09/22 PHP
php 使用array函数实现分页
2015/02/13 PHP
php中Snoopy类用法实例
2015/06/19 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
JavaScript实现快速排序(自已编写)
2012/12/19 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
jQuery父级以及同级元素查找介绍
2013/09/04 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
使用JS取得焦点(focus)元素代码
2014/03/22 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
jquery判断复选框是否被选中的方法
2015/10/16 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
JS实现普通轮播图特效
2020/01/01 Javascript
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
python在非root权限下的安装方法
2018/01/23 Python
python数据挖掘需要学的内容
2019/06/23 Python
python中metaclass原理与用法详解
2019/06/25 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
Python运算符+与+=的方法实例
2021/02/18 Python
澳大利亚在线高跟鞋商店:Shoe Me
2019/11/19 全球购物
优秀毕业生求职信范文
2014/01/02 职场文书
大型活动策划方案
2014/01/12 职场文书
劳动者解除劳动合同通知书
2015/04/16 职场文书
2016年圣诞节寄语(一句话)
2015/12/07 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
python本地文件服务器实例教程
2021/05/02 Python
详解thinkphp的Auth类认证
2021/05/28 PHP
Java 获取Word中所有的插入和删除修订的方法
2022/04/06 Java/Android
Golang 切片(Slice)实现增删改查
2022/04/22 Golang