js数字舍入误差以及解决方法(必看篇)


Posted in Javascript onFebruary 28, 2017

1、起因:

js数字舍入误差以及解决方法(必看篇)

返回结果是true。

2、原因:计算机的二进制实现和位数限制有些数无法有限表示。就像一些无理数不能有限表示,如 圆周率 3.1415926...,1.3333... 等。JS 遵循 IEEE 754 规范,采用双精度存储(double precision),占用 64 bit。

3、解决方法

(1)toFixed(),存在兼容性(chrome)

js数字舍入误差以及解决方法(必看篇)

(2)比较稳妥方法(数字如果过大,也会有误差):

*JS 中能精准表示的最大整数是 Math.pow(2, 53),十进制即 9007199254740992。  大于 9007199254740992 的可能会丢失精度

function round(num,d){

//Step1:将num放大10的d次方倍

num*=Math.pow(10,d);

//Step2:对num四舍五入取整

num = Math.round(num);

//Step:返回num缩小10的d次方倍,获得最终结果

return num/Math.round(10,d);

}

console.log(round(123.456)); //123.46

以上这篇js数字舍入误差以及解决方法(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript继承方式实例
Oct 29 Javascript
javascript 构造函数强制调用经验总结
Dec 02 Javascript
使用jquery读取html5 localstorage的值的方法
Jan 04 Javascript
实测jquery data()如何存值
Aug 18 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
Dec 16 Javascript
详解Vue.js中.native修饰符
Apr 24 Javascript
jQuery实现常见的隐藏与展示列表效果示例
Jun 04 jQuery
解决Vue+Element ui开发中碰到的IE问题
Sep 03 Javascript
angular2 组件之间通过service互相传递的实例
Sep 30 Javascript
bootstrap Table实现合并相同行
Jul 19 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 Javascript
Vue为什么要谨慎使用$attrs与$listeners
Aug 27 Javascript
JS实现浏览器打印、打印预览示例
Feb 28 #Javascript
JS基于面向对象实现的多个倒计时器功能示例
Feb 28 #Javascript
js中删除数组中的某一元素实例(无下标时)
Feb 28 #Javascript
jQuery图片切换动画效果
Feb 28 #Javascript
jQuery 判断元素整理汇总
Feb 28 #Javascript
jQuery倒计时代码(超简单)
Feb 27 #Javascript
js实现图片左右滚动效果
Feb 27 #Javascript
You might like
PHP教程 变量定义
2009/10/23 PHP
说说PHP的autoLoad自动加载机制
2012/09/27 PHP
PHP把网页保存为word文件的三种方法
2014/04/01 PHP
php use和include区别总结
2019/10/13 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
自己的js工具 Event封装
2009/08/21 Javascript
javascript getElementsByClassName函数
2010/04/01 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
JS记录用户登录次数实现代码
2014/01/15 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
2015/01/29 Javascript
JavaScript脚本判断蜘蛛来源的方法
2015/09/22 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
js判断主流浏览器类型和版本号的简单实现代码
2016/05/26 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
JavaScript实现二维坐标点排序效果
2017/07/18 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
浅谈React高阶组件
2018/03/28 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
2020/05/10 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
用CSS3和table标签实现一个圆形轨迹的动画的示例代码
2019/01/17 HTML / CSS
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
什么是属性访问器
2015/10/26 面试题
法学专业应届生求职信
2013/10/16 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
活动经费申请报告
2015/05/15 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang