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 相关文章推荐
刷新页面的几种方法小结(JS,ASP.NET)
Jan 07 Javascript
javascript对象的使用和属性操作示例详解
Mar 02 Javascript
JS对img标签进行优化使用onerror显示默认图像
Apr 24 Javascript
一个通过script自定义属性传递配置参数的方法
Sep 15 Javascript
jquery 实现返回顶部功能
Nov 17 Javascript
js实例属性和原型属性示例详解
Nov 23 Javascript
node.js集成百度UE编辑器
Feb 05 Javascript
jQuery原生的动画效果
Jul 10 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
May 20 Javascript
jQuery网页定位导航特效实现方法
Dec 19 Javascript
JavaScript设计模式之策略模式详解
Jun 09 Javascript
js实现简单贪吃蛇游戏
May 15 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
域名查询代码公布
2006/10/09 PHP
什么是MVC,好东西啊
2007/05/03 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
php中实现xml与mysql数据相互转换的方法
2014/12/25 PHP
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
用jquery实现下拉菜单效果的代码
2010/07/25 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
jQuery 全选/反选以及单击行改变背景色实例
2013/07/02 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
JS 判断某变量是否为某数组中的一个值的3种方法(总结)
2017/07/10 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
2017/08/07 Javascript
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
基于ES6作用域和解构赋值详解
2017/11/03 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
python递归法解决棋盘分割问题
2019/07/17 Python
python科学计算之narray对象用法
2019/11/25 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
Manuka Doctor英国官网:真正的麦卢卡蜂蜜和护肤品
2018/10/26 全球购物
会议开场欢迎词
2014/01/15 职场文书
中学生获奖感言
2014/02/04 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
天堂的孩子观后感
2015/06/11 职场文书
2015年秋季小学开学标语
2015/07/16 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书
排查Tomcat进程假死的问题
2022/05/06 Servers