JS中toFixed()方法引起的问题如何解决


Posted in Javascript onNovember 20, 2012

最近发现JS当中toFixed()方法存在一些问题,采用原生的Number对象的原型对象上的toFixed()方法时,规则并不是所谓的“四舍五入”或者是“四舍六入五成双”,所谓“四舍六入五成双”,在百度百科上给的解释是:也即“4舍6入5凑偶”这里“四”是指≤4 时舍去,"六"是指≥6时进上,"五"指的是根据5后面的数字来定,当5后有数时,舍5入1;当5后无有效数字时,需要分两种情况来讲:①5前为奇数,舍5入1;②5前为偶数,舍5不进。(0是最小的偶数) 。百度百科上涉及的几个例子在实际情况下确实成立,但不科学,并不能覆盖所有的情况。

测试浏览器:?潘夸?榔?E6以及高级?潘夸?榔?E78和所有现代主流浏览器包括IE9、IE10、FF、chrome、opera、safari。(注:在使用IE10的类似firebug的开发工具时,采用兼容IE低版本浏览器模式时的测试结果跟使用原生低版本IE浏览器的测试结果不一致)

在浮点数末尾≤4或者≥6的情况下的舍入没有争议,但当末尾正好等于5的情况下可谓混乱之极。
总结:众所周知,遵循IEEE754数值格式的语言的浮点计算会出现精度损耗的通病,ES也并非独此一家,因此尽量不要进行某个特定浮点数值的测试,如:0.1+0.2;
解决方案:重写Number.prototype.toFixed()方法:

Javascript 相关文章推荐
javascript 面向对象编程基础:继承
Aug 21 Javascript
javascript 去字符串空格终极版(支持utf8)
Nov 14 Javascript
javascript 闭包
Sep 15 Javascript
JavaScript建立一个语法高亮输入框实现思路
Feb 26 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
Nov 18 Javascript
js树插件zTree获取所有选中节点数据的方法
Jan 28 Javascript
完美实现仿QQ空间评论回复特效
May 06 Javascript
jquery实现简单的全选和反选功能
Jan 02 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
Nov 07 Javascript
javascript基本数据类型及类型检测常用方法小结
Dec 14 Javascript
react项目如何使用iconfont的方法步骤
Mar 13 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
Sep 05 Javascript
JavaScript实现拼音排序的方法
Nov 20 #Javascript
Js+Flash实现访问剪切板操作
Nov 20 #Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
Nov 19 #Javascript
jQuery 数据缓存模块进化史详细介绍
Nov 19 #Javascript
基于jquery库的tab新形式使用
Nov 16 #Javascript
jquery getScript动态加载JS方法改进详解
Nov 15 #Javascript
javascript 图片裁剪技巧解读
Nov 15 #Javascript
You might like
十天学会php之第八天
2006/10/09 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.2 0
2008/03/22 Javascript
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
vue项目中v-model父子组件通信的实现详解
2017/12/10 Javascript
vue实现word,pdf文件的导出功能
2018/07/31 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
js实现简单进度条效果
2020/03/25 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
js实现全选和全不选
2020/07/28 Javascript
教你用Python写安卓游戏外挂
2018/01/11 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
Django 实现将图片转为Base64,然后使用json传输
2020/03/27 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
Python map及filter函数使用方法解析
2020/08/06 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
百度JavaScript笔试题
2015/01/15 面试题
采购部岗位职责
2013/11/24 职场文书
幼儿园中班上学期评语
2014/04/18 职场文书
小学运动会班级口号
2014/06/09 职场文书
企业标语大全
2014/07/01 职场文书
介绍信格式
2015/01/30 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
爱护公物主题班会
2015/08/17 职场文书
子女赡养老人协议书
2016/03/23 职场文书
新手初学Java网络编程
2021/07/07 Java/Android
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL