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 相关文章推荐
JQUERY设置IFRAME的SRC值的代码
Nov 30 Javascript
js 限制数字 js限制输入实现代码
Dec 04 Javascript
jQuery中:image选择器用法实例
Jan 03 Javascript
JavaScript使用concat连接数组的方法
Apr 06 Javascript
详细解读JavaScript编程中的Promise使用
Jul 27 Javascript
js实现商品抛物线加入购物车特效
Nov 18 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
May 25 Javascript
JS中IP地址与整数相互转换的实现代码
Apr 10 Javascript
JS使用tofixed与round处理数据四舍五入的区别
Oct 25 Javascript
JavaScript指定断点操作实例教程
Sep 18 Javascript
NestJs 静态目录配置详解
Mar 12 Javascript
node 标准输入流和输出流代码实例
Sep 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
深入PHP异步执行的详解
2013/06/03 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
2020/04/06 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
JS 判断undefined的实现代码
2009/11/26 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
2013/07/01 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
跨域请求的完美解决方法(JSONP, CORS)
2016/06/12 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
Vue中用props给data赋初始值遇到的问题解决
2018/11/27 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
python回调函数用法实例分析
2015/05/09 Python
Python之父谈Python的未来形式
2016/07/01 Python
Python连接数据库学习之DB-API详解
2017/02/07 Python
python操作excel的方法
2018/08/16 Python
Python拼接字符串的7种方法总结
2018/11/01 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
python中p-value的实现方式
2019/12/16 Python
Python实现壁纸下载与轮换
2020/10/19 Python
Python的Tqdm模块实现进度条配置
2021/02/24 Python
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
自我评价是什么
2014/01/04 职场文书
教学个人的自我评价分享
2014/02/16 职场文书
校园安全标语
2014/06/07 职场文书
义务教育学校标准化建设汇报材料
2014/08/16 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
《黄道婆》教学反思
2016/02/22 职场文书