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 相关文章推荐
Div Select挡住的解决办法
Aug 07 Javascript
confirm的用法示例用于按钮操作时确定是否执行
Jun 19 Javascript
原生javascript获取元素样式
Dec 31 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
May 20 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
May 26 Javascript
JS数字千分位格式化实现方法总结
Dec 16 Javascript
Angular获取手机验证码实现移动端登录注册功能
May 17 Javascript
js 获取html5的data属性实现方法
Jul 28 Javascript
你点的 ES6一些小技巧,请查收
Apr 25 Javascript
jquery 动态遍历select 赋值的实例
Sep 12 jQuery
JS执行控制之节流模式实例分析
Dec 21 Javascript
JS判断数组四种实现方法详解
Jun 29 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+mysql保存和输出文件
2006/10/09 PHP
php的慢速日志引起的Mysql错误问题分析
2014/05/13 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
php+ajax+json 详解及实例代码
2016/12/12 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
JavaScript检查某个function是否是原生代码的方法
2014/08/20 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
jQuery 改变P标签文本值方法
2018/02/24 jQuery
用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)
2018/12/05 Javascript
vue 实现走马灯效果
2019/10/28 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Python中的ceil()方法使用教程
2015/05/14 Python
python实现判断一个字符串是否是合法IP地址的示例
2018/06/04 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
Python中的全局变量如何理解
2020/06/04 Python
css3实现画半圆弧线的示例代码
2017/11/06 HTML / CSS
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
Beauty Expert美国/加拿大:购买奢侈美容产品
2018/12/05 全球购物
高级方案规划工程师岗位职责
2013/11/29 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书