js中如何判断两个浮点数是否相等

JavaScript021

js中如何判断两个浮点数是否相等,第1张

js中Number类型表示数字,采用“IEEE 754 标准定义的双精度64位格式”表示数字,不区分整数值和浮点数值,均采用浮点数值表示,所以在进行数字运算的时候要特别之一进度缺失问题。

js中0.1+0.2 == 0.3吗?

那么如何判断两个浮点数直接相等呢?

1、精度判断法

2、使用toFixed()方法

toFixed()方法可以把Number四舍五入为指定小数的数字。

语法

NumberObject.toFixed(num)//num代表要保留的小数位数。

但是toFixe存在不精准的问题:

解决方法:

重写toFixed()方法:

参考:

https://blog.csdn.net/undytk/article/details/88912386

https://blog.csdn.net/qq_33237207/article/details/81668457

思路:将数组里的最大值和最小值都取出来,然后判断最大值和最小值是否想等。

声明一个简单数组:

const tempArr = [7,6,5,4,3,2,1,]

Math.max.apply(null,tempArr)  == Math.min.apply(null,tempArr)

声明一个对象数组:

const obj = [{id:1,price:1.5},{id:2,price:1.5,}]

const arr = obj.map(o =>o.price)

Math.max.apply(null,arr) == Math.min.apply(null,arr)