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 相关文章推荐
node.js中的querystring.escape方法使用说明
Dec 10 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
Feb 10 Javascript
jquery实现公告翻滚效果
Feb 27 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
Mar 08 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
May 11 Javascript
简洁实用的BootStrap jQuery手风琴插件
Aug 31 Javascript
走进AngularJs之过滤器(filter)详解
Feb 17 Javascript
Vue拖拽组件开发实例详解
May 11 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
Apr 04 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
Apr 10 Javascript
解决vue自定义全局消息框组件问题
Nov 22 Javascript
探索node之事件循环的实现
Oct 30 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
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
PHP微信支付开发实例
2016/06/22 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
图像替换新技术 状态域方法
2010/01/28 Javascript
第一个JavaScript入门基础 document.write输出
2010/02/22 Javascript
麻雀虽小五脏俱全 Dojo自定义控件应用
2010/09/04 Javascript
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
如何从零开始利用js手写一个Promise库详解
2018/04/19 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
2019/06/10 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
JavaScript实现拖拽和缩放效果
2020/08/24 Javascript
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
2017/09/08 Python
Python3生成手写体数字方法
2018/01/30 Python
python使用pygame模块实现坦克大战游戏
2020/03/25 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
Python 求数组局部最大值的实例
2019/11/26 Python
keras.layer.input()用法说明
2020/06/16 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
公司行政经理岗位职责
2013/12/24 职场文书
科级干部考察材料
2014/02/15 职场文书
社会实践评语
2014/04/28 职场文书
经济类毕业生求职信
2014/06/26 职场文书
十佳青年事迹材料
2014/08/21 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
公司离职证明范本
2014/10/17 职场文书
教师党员个人整改措施
2014/10/27 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书