检查 JavaScript 中的数字是否在 Java 中的 int 范围内 (–2147483648 < n < 2147483647)

Ria*_*adh 2 javascript java

将 JavaScript 数字验证为 Java int 的正确方法是什么?

\n\n
  \xe2\x80\x932147483648 < n < 2147483647\n\n IsNumeric(2147483648) --> true: which is > int\n parseInt("2147483648") --> 2147483648 : which is > int\n
Run Code Online (Sandbox Code Playgroud)\n

Aki*_*nen 7

假设Java中整数的范围实际上是“\xe2\x80\x932147483648 <= n <= 2147483647”,则表达式((+a)|0) == a将按指定工作。

\n\n
    \n
  • +a将表达式 a 计算为数字;
  • \n
  • |0将数字转换为 32 位整数
  • \n
\n\n

a当32 位整数无法精确表示时,比较将失败。

\n