美文网首页
较小的数值

较小的数值

作者: 了凡和纤风 | 来源:发表于2020-03-08 13:39 被阅读0次

JavaScript只有一种数值类型:number(数字)。JavaScript没有真正意义上的整数,这也是它一直以来为人诟病的地方。JavaScript中的“整数”就是没有小数的十进制数。所以 42.0 即等同于 “整数”42。

JavaScript 中的数字类型是基于 IEEE754 标准来实现的,该标准通常也被称为“浮点数”。JavaScrip 使用的是 “双精度” 格式(即 64 位二进制)

二进制浮点数最大的问题 (不仅 JavaScript,所有遵循 IEEE 754 规范的语言都是如此),会出现如下情况

0.1 + 0.2 === 0.3 // false

简单来说,二进制浮点数中的 0.1 和 0.2 并不是十分精确,他们相加的结果并非刚好等于 0.3,而是一个比较接近的数值 0.30000000000000004, 所以条件判断结果为 false

最常见的方法是设置一个误差范围值,通常称为“机器精度(nacinne epsilon)”,对 JavaScript的数值来说,这个值通常是 2^-52(2.220446049250313e-16)

从 ES6 开始,这个值定义在 Number.EPSILON

ES6之前的 polyfill:

if (!Number.EPSILON) {
  Number.EPSILON = Math.pow(2, -52)
}

可以使用 Number.EPSILON 来比较两个数值是否相等

function numbersCloseEnoughToEqual(n1, n2) {
   return Math.abs(n1 - n2) < Number.EPSILON
}

let a = 0.1 + 0.2
let b = 0.3

numbersCloseEnoughToEqual(a, b) // true

能够呈现的最大浮点数大约是 1.798e+308,它定义在 Number.MAX_VALUE
最小的浮点数大约是 5e-324,他不是负数,但是无限接近与0,定义在 Number.MIN_VALUE

相关文章

  • 较小的数值

    JavaScript只有一种数值类型:number(数字)。JavaScript没有真正意义上的整数,这也是它一直...

  • 冒泡排序

    冒泡排序思想 让数组当中相邻的两个数进行比较,数组当中比较小的数值向下沉,数值比较大的向上浮!外层for循环控制循...

  • 顺序表

    C语言生成两个不同的数值由小到大的表,将两个表的数值一一比对,将数值比较小的写入到第三个表中,最后将某一剩余表中的...

  • 快速排序

    快速排序使用分治法策略,分 就是把一个序列分为较小数值和较大数值的2个子序列,治 就是通过递归地排序两个子序列 快...

  • 2020-12-03 SQL数据库的列类型

    数值类型 类型描述占位/字节tinyint十分小的数据1smalint较小的数据2mediumint中等大小的数据...

  • 概念

    整型:如果直接将一个较小的整数值(在byte,short范围内)赋值给byte或者short,系统会自动把这个整数...

  • 4.k近邻法

    K k值一般取一个较小的数值,通常采用交叉验证法来选取最优的k值. Distance k近邻算法 输入 1. 训练...

  • R语言生信分析——表达矩阵数值问题

    矩阵数据,包括基因,样本,和表达数据,这些表达数据一般是取过log2的,也有特殊情况。正常情况,数值比较小的话,一...

  • 比较小的问题

    包装类 新建线程的方法 1.继承thread,重写run方法 2实现Runnable接口在runnable接口实现...

  • 获取质数的三种方法(python 实现)

    一.普通判断 (直接判断是否是质数) 对于数值较小的数适合,对于上千位的数判断可能要花较长的时间 二.埃拉托色尼筛...

网友评论

      本文标题:较小的数值

      本文链接:https://www.haomeiwen.com/subject/vnyddhtx.html