【问题标题】:Hello, Im new to JavaScript and I have a question about isNan() function你好,我是 JavaScript 新手,我有一个关于 isNan() 函数的问题
【发布时间】:2021-08-30 15:27:55
【问题描述】:

我正在查看 isNaN() 函数的示例,它在下面提供了此代码。 有人可以解释为什么 100F 不是数字但 0.0314E+2 是数字吗?我看到这两个数字都是字符串,isNaN 函数应该能够将数字与字符串区分开来,但我只是不明白它们为什么不同,因为两个字符串都有数字和一个字母,而让后者如此难以理解的是它有一个带有 E+ 运算符的字母并且不知何故是一个数字?


function milliseconds(x) {
  if (isNaN(x)) {
    return 'Not a Number!';
  }
  return x * 1000;
}

console.log(milliseconds('100F'));
// expected output: "Not a Number!"

console.log(milliseconds('0.0314E+2'));
// expected output: 3140

【问题讨论】:

标签: javascript


【解决方案1】:

字符串中的'E'是'Exponent'的缩写。

在这种情况下,它代表 10 的幂。

'E+2' 表示我们将数字的第一部分乘以 10^2 = 100。

所以 '0.0314E+2' 表示 0.0314 x 100 = 3.14

如果符号为负,例如“0.0314E-2”,则表示 0.0314 x 10^(-2) = 0.0314 x 0.01 = 0.000314。

这种表示法允许您书写非常大或非常小的数字。它被称为科学记数法。

但是,当您只需要数字时,它可能会导致检查输入出现问题,因为通常允许使用字母“E”,即使您不想要它,因为这种表示法。

【讨论】:

  • 非常感谢您为我解惑!这对我来说是科学记数法的复习;自从介绍这种类型的数学以来,我已经有一段时间了,更不用说在代码中使用它了,非常感谢,非常感谢!!
猜你喜欢
  • 2020-07-12
  • 1970-01-01
  • 2021-09-14
  • 2022-12-04
  • 2023-03-29
  • 2021-09-25
  • 1970-01-01
  • 2012-09-30
  • 2022-06-15
相关资源
最近更新 更多