如何检查 Value 是否为 JavaScript 中的浮点数

JavaScript 中检查一个值是否为浮点数:

  1. 检查该值是否具有数字类型并且不是整数。
  2. 检查该值是否不是 NaN
  3. 如果一个值是一个数字,不是 NaN 也不是整数,那么它就是一个浮点数。
function isFloat(value) {
  if (
    typeof value === 'number' &&
    !Number.isNaN(value) &&
    !Number.isInteger(value)
  ) {
    return true;
  }

  return false;
}

console.log(isFloat(1)); // 👉️ false
console.log(isFloat(1.5)); // 👉️ true
console.log(isFloat(-1.5)); // 👉️ true
console.log(isFloat('1.5')); // 👉️ false

我们首先检查提供的值是否具有数字类型。 如果不是,我们会立即返回 false。

我们使用逻辑与 && 运算符来检查多个条件。 要运行我们的 if 块,必须满足所有条件。

第二个条件检查提供的值不是 NaN(不是数字)。 不幸的是,NaN 在 JavaScript 中有一种数字类型。

console.log(typeof Number.NaN); // 👉️ number

我们必须进行 NaN 检查,因为 NaN 具有数字类型,而不是整数。

如果提供的值是数字类型,不是 NaN 也不是整数,我们返回 true。

使用 Number.isInteger 方法时有一个问题。

如果传入值,则返回 true:

  • 是一个整数
  • 是一个可以表示为整数的浮点数

下面是一个可以表示为整数的浮点数示例。

console.log(Number.isInteger(10.0)); // 👉️ true

将 10.0 视为整数还是浮点数取决于您的用例。

我们对该函数的实现将 1.0 和 5.0 之类的数字视为非浮点数。