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 相关文章推荐
JavaScript 直接操作本地文件的实现代码
Dec 01 Javascript
javascript 常用功能总结
Mar 18 Javascript
JavaScript中的运算符种类及其规则介绍
Sep 26 Javascript
jquery toolbar与网页浮动工具条具体实现代码
Jan 12 Javascript
url中的特殊符号有什么含义(推荐)
Jun 17 Javascript
需要牢记的JavaScript基础知识
Sep 25 Javascript
javascript淘宝主图放大镜功能
Oct 20 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
Apr 10 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
Aug 09 jQuery
jQuery实现滚动到底部时自动加载更多的方法示例
Feb 18 jQuery
vue自定义树状结构图的实现方法
Oct 18 Javascript
JavaScript原型链详解
Nov 07 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(1)
2006/10/09 PHP
php使用异或实现的加密解密实例
2013/09/04 PHP
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
php实现的后台表格分页功能示例
2017/10/23 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
javascript函数库-集合框架
2007/04/27 Javascript
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
jQuery的load()方法及其回调函数用法实例
2015/03/25 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
2017/03/31 Javascript
使用D3.js创建物流地图的示例代码
2018/01/27 Javascript
vue的全局提示框组件实例代码
2018/02/26 Javascript
vue.js中ref及$refs的使用方法解析
2019/10/08 Javascript
详解python里使用正则表达式的全匹配功能
2017/10/19 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
对Python信号处理模块signal详解
2019/01/09 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
Django admin组件的使用
2020/10/24 Python
Html5元素及基本语法详解
2016/08/02 HTML / CSS
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
化妆师职业生涯规划书
2014/02/16 职场文书
大班幼儿评语大全
2014/04/30 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
幼儿园大班教师评语
2019/06/21 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS