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 相关文章推荐
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
Jan 06 Javascript
javascript控制swfObject应用介绍
Nov 29 Javascript
node.js中的console.dir方法使用说明
Dec 10 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
Feb 21 Javascript
详解Vue用axios发送post请求自动set cookie
May 10 Javascript
微信小程序自定义底部弹出框
Nov 16 Javascript
JS实现的点击按钮图片上下滚动效果示例
Jan 28 Javascript
javascript中join方法实例讲解
Feb 21 Javascript
微信小程序数据统计和错误统计的实现方法
Jun 26 Javascript
vue实现标签云效果的方法详解
Aug 28 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
Apr 15 Javascript
jquery插件懒加载的示例
Oct 24 jQuery
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代码
2007/03/08 PHP
php 来访国内外IP判断代码并实现页面跳转
2009/12/18 PHP
学习php笔记 字符串处理
2010/10/19 PHP
PHP 万年历实现代码
2012/10/18 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
iframe的父子窗口之间的对象相互调用基本用法
2013/09/03 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
javascript自定义的addClass()方法
2014/05/28 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
用js制作淘宝放大镜效果
2020/10/28 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
微信小程序学习之数据处理详解
2017/07/05 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
微信小程序实现下拉框功能
2019/07/16 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
python装饰器使用方法实例
2013/11/21 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
Python3爬楼梯算法示例
2019/03/04 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
使用Tkinter制作信息提示框
2020/02/18 Python
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
宣传部部长竞选演讲稿
2014/04/26 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
中学生国庆节演讲稿2015
2015/07/30 职场文书