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 相关文章推荐
JS提交并解析后台返回的XML的代码
Nov 03 Javascript
实现局部遮罩与关闭原理及代码
Feb 04 Javascript
jquery 合并内容相同的单元格(示例代码)
Dec 13 Javascript
动态加载jquery库的方法
Feb 12 Javascript
浅谈JavaScript中Date(日期对象),Math对象
Feb 05 Javascript
基于Javascript实现弹出页面效果
Jan 01 Javascript
React Native中Navigator的使用方法示例
Oct 13 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
Mar 05 Javascript
element-ui中的select下拉列表设置默认值方法
Aug 24 Javascript
JQuery省市联动效果实现过程详解
May 08 jQuery
微信小程序实现聊天室
Aug 21 Javascript
js通过canvas生成图片缩略图
Oct 02 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模块memcache和memcached区别分析
2011/06/14 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
JavaScript 事件对象的实现
2009/07/13 Javascript
JS 实现导航栏悬停效果
2013/09/23 Javascript
js倒计时小程序
2013/11/05 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)
2014/10/17 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
jQuery插件开发汇总
2016/05/15 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
Vue.js路由vue-router使用方法详解
2017/03/20 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
2017/07/20 Javascript
深入理解React高阶组件
2017/09/28 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
[05:08]第一届“网鱼杯”DOTA2比赛精彩集锦
2014/09/05 DOTA
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
python静态方法实例
2015/01/14 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
Python中Scrapy爬虫图片处理详解
2017/11/29 Python
python tkinter实现界面切换的示例代码
2019/06/14 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
详解Python中如何将数据存储为json格式的文件
2020/11/18 Python
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
怎样拟定创业计划书
2014/05/01 职场文书
群众路线教育实践活动学习心得体会
2014/10/30 职场文书
新学期感想
2015/08/10 职场文书
Python socket如何解析HTTP请求内容
2022/02/12 Python
分享3个非常实用的 Python 模块
2022/03/03 Python
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis