Javascript parseInt对大负数给出NaN

Javascript parseInt on large negative number gives NaN

本文关键字:NaN parseInt Javascript      更新时间:2023-09-26

当我这样做时:

var x = parseInt("–2147483648");
console.log(x);

我得到的值为:

NaN

为什么会发生这种情况?

我想测试一个数字是否在C(int)的范围内,所以我正在做上面的操作,但它不起作用。另外,我想为C(long)做这件事,有办法吗?

例如:如果我这样做:

var x = parseInt("-9223372036854775808");
console.log(x);

现在,我知道(++)2^53是Javascript中数字的极限。是否有其他方法可以测试表单中给定的值是否真的在long或int的范围内?

它应该可以正常工作,问题是您使用了错误的字符,一个ndash 与一个连字符-:

var x = parseInt("-2147483648");
console.log(x);

如果你复制/粘贴它,你会发现它现在有效。

经过两天的尝试,这解决了我的问题。数字选择器使用了错误的负数格式。我把字段改为textstring,然后用parseInt得到了正确的负数。