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 相关文章推荐
用dom+xhtml+css制作的一个相册效果代码打包下载
Jan 24 Javascript
动态加载script文件的两种方法
Aug 15 Javascript
node.js操作mongoDB数据库示例分享
Nov 26 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
Aug 25 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
Aug 26 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
Sep 21 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
Oct 16 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
May 24 Javascript
js判断手机号是否正确并返回的实现代码
Jan 17 Javascript
微信小程序实现圆形进度条动画
Nov 18 Javascript
uniapp实现可以左右滑动导航栏
Oct 21 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
Jan 19 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
PHP文本操作类
2006/11/25 PHP
php学习笔记之 函数声明
2011/06/09 PHP
PHP创建桌面快捷方式的实例代码
2014/02/17 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
jquery load事件(callback/data)使用方法及注意事项
2013/02/06 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
Django中Middleware中的函数详解
2019/07/18 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
python实现移动木板小游戏
2020/10/09 Python
如何写出好的Java代码
2014/04/25 面试题
升职自荐书范文
2013/11/28 职场文书
志愿者活动总结范文
2014/04/26 职场文书
学校运动会霸气口号
2014/06/07 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
Android Rxjava3 使用场景详解
2022/04/07 Java/Android
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python