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实现网页背景颜色与select框中颜色同时变化的方法
Feb 27 Javascript
jQuery超酷平面式时钟效果代码分享
Mar 30 Javascript
jQuery改变form表单的action,并进行提交的实现代码
May 25 Javascript
JavaScript每天必学之事件
Sep 18 Javascript
jquery radio的取值_radio的选中_radio的重置方法
Sep 20 Javascript
关于JavaScript中forEach和each用法浅析
Jul 27 Javascript
解决select2在bootstrap modal中不能正常使用的问题
Aug 09 Javascript
三种Webpack打包方式(小结)
Sep 19 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
Jun 05 Javascript
JS实现canvas简单小画板功能
Jun 23 Javascript
基于JavaScript实现猜数字游戏代码实例
Jul 30 Javascript
JavaScript JSON使用原理及注意事项
Jul 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
一个目录遍历函数
2006/10/09 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
JS日历 推荐
2006/12/03 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
2012/11/07 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
2015/02/04 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
2018/10/30 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
2017/11/16 Python
python交互式图形编程实例(一)
2017/11/17 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
python输出pdf文档的实例
2020/02/13 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
网吧收银员岗位职责
2013/12/14 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
学习雷锋标语
2014/06/25 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
年会主持人开场白台词
2015/05/29 职场文书
校运会加油稿大全
2015/07/22 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB