首页 > 解决方案 > 为什么 === 运算符不能正常工作?

问题描述

当我运行以下代码时,它返回 true

parseFloat(0.5*2)===parseInt(0.5*2)

但是,当我运行以下代码时,它正确返回 false。

parseFloat(0.5*0.5) === parseInt(0.5*0.5)

这两种情况都不应该是错误的吗?还是我错过了什么?

标签: javascript

解决方案


这两种情况都不应该是错误的吗?还是我错过了什么?

也许你认为 JavaScript 中有两种不同的“float”和“int”类型的数字,因此三重等式应该检查 type 和 return false

在 JavaScript中12.3都是同一个类型的“数字”。

因此,由于在第一种情况(1.0)中数字相等,因此三重相等(类型 + 值相等)成立。

用文字值检查它:

console.log(1 === 1.0)


推荐阅读