为什么parseInt("-1000-500-75-33")
返回-1000
?
它不应该返回这些数字的总和:-1608
如何获取字符串 "-1000-500-75-33"
作为这些数字的总和返回?
最佳答案
parseInt
将尝试从字符串的开头开始获取数字。
由于 -
是数字开头的有效字符,因此它会解析字符串,直到找到无效的内容。第二个 -
无效,因为任何整数都不能在其中包含 -
,只能包含数字。因此它停在那里并认为该数字已“完成”。
现在,如果您想处理表达式,您可以使用eval
,如下所示:
eval("-1000-500-75-33")
这将按预期返回 -1608
。
关于javascript - 字符串到数字的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42568243/