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 相关文章推荐
制作特殊字的脚本
Jun 26 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
Jun 08 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
Jan 28 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
Nov 28 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
Aug 13 Javascript
前端js弹出框组件使用方法
Aug 24 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
Apr 22 Javascript
Vue组件实例间的直接访问实现代码
Aug 20 Javascript
微信小程序实现自动定位功能
Oct 31 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
Sep 03 Javascript
javascript实现弹幕墙效果
Nov 28 Javascript
解决vue项目运行npm run serve报错的问题
Oct 26 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
ExtJS与PHP、MySQL实现存储的方法
2010/04/02 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
javascript中常用编程知识
2013/04/08 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
javascript的几种写法总结
2016/09/30 Javascript
js实现自定义路由
2017/02/04 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
微信小程序实现上传多个文件 超过10个
2020/03/30 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
基于树莓派的语音对话机器人
2019/06/17 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
Python自动化办公Excel模块openpyxl原理及用法解析
2020/11/05 Python
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
班组建设经验交流材料
2014/05/12 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
2014年保洁工作总结
2014/11/24 职场文书
《槐乡的孩子》教学反思
2016/02/20 职场文书
如何利用JavaScript实现二叉搜索树
2021/04/02 Javascript
总结python多进程multiprocessing的相关知识
2021/06/29 Python
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis
python保存图片的四个常用方法
2022/02/28 Python