既然JS中的整数也是用浮点数表示的,那么在做整数之间的比较时是否也必须考虑浮点误差呢?比如3===6/2这种写法有可能放回false?

既然JS中的整数也是用浮点数表示的,那么在做整数之间的比较时是否也必须考虑浮点误差呢?比如3===6/2这种写法有可能放回false?

if(3 === 6/2) {
    alert("true")
}
else {
    alert("false")
}

经过尝试确实是返回ture的。

那么请问

  1. 是否确实有整数比较由于浮点误差失败的情况?如果有,那整数间安全的比较应该怎么写?
  2. 如果没有这种例子,即整数之间比较是安全的(像c/c++一样),那么js是如何实现的?毕竟js中的整数都是浮点数。

JS中的整数也是用浮点数表示的
这句话本身不成立,没有一种编程语言会傻到用浮点数来表示整数。