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 相关文章推荐
如何阻止复制剪切和粘贴事件为了表单内容的安全
May 23 Javascript
jquery ajax对特殊字符进行转义防止js注入使用示例
Nov 21 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
Oct 17 Javascript
jQuery EasyUI datagrid实现本地分页的方法
Feb 13 Javascript
jQuery实现contains方法不区分大小写的方法
Feb 13 Javascript
使用Chrome浏览器调试AngularJS应用的方法
Jun 18 Javascript
JavaScript事件详细讲解
Jun 27 Javascript
jQuery 更改checkbox的状态,无效的解决方法
Jul 22 Javascript
JS实现重新加载当前页面或者父页面的几种方法
Nov 30 Javascript
基于JavaScript实现自定义滚动条
Jan 25 Javascript
Vue中的字符串模板的使用
May 17 Javascript
使用pm2自动化部署node项目的方法步骤
Jan 28 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中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
php编写简单的文章发布程序
2015/06/18 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
PHP结合Jquery和ajax实现瀑布流特效
2016/01/07 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
JS 继承实例分析
2008/11/04 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
VUE中的无限循环代码解析
2017/09/22 Javascript
浅谈如何使用 webpack 优化资源
2017/10/20 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
JavaScript 反射和属性赋值实例解析
2019/10/28 Javascript
python中os操作文件及文件路径实例汇总
2015/01/15 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
在python中实现强制关闭线程的示例
2019/01/22 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
浅谈Python中的模块
2020/06/10 Python
将tf.batch_matmul替换成tf.matmul的实现
2020/06/18 Python
Python list和str互转的实现示例
2020/11/16 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
html5 跨文档消息传输示例探讨
2013/04/01 HTML / CSS
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
函授毕业自我鉴定
2014/02/04 职场文书
2014年优质护理服务工作总结
2014/11/14 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
高效课堂教学反思
2016/02/24 职场文书
2016年第二十五次全国助残日活动总结
2016/04/01 职场文书
Spark SQL 2.4.8 操作 Dataframe的两种方式
2021/10/16 SQL Server
Vue h函数的使用详解
2022/02/18 Vue.js