Number

  1. javascript是由+0和-0的,在加法的运算上是没有区别,但是如果是在除法上,就有一些区别,
  2. number类型符合双精度浮点数规则,

根据浮点数的定义,非整数的number类型无法使用==,===进行比较,因为浮点数运算的精度问题导致等式两边的结果并不是严格相等,相差了几个微小的值。如果你想比较以下代码,得出的结果是false

console.log( 0.1+0.2 == 0.3)     //false

如果想准确的比较,需要使用以下方法,等号左边是取绝对值,等号右边是最小精度,判断等式左边的绝对值是否小于number的最小精度,才是正确的比较浮点数的方法。

console.log( Math.abs(0.1 +0.2 -0.3) <= Number.EPSILON)//true

CentOs
1 声望0 粉丝