【发布时间】:2017-11-22 05:02:52
【问题描述】:
console.log(parseInt(0.0000008))
// > 8
console.log(parseInt(0.000008))
// > 0
console.log(parseInt(0.0000008, 10))
// > 8
console.log(parseInt(0.000008, 10))
// > 0
上述代码在 macOS Sierra 版本 10.12.6 上的 Google Chrome 版本 62.0.3202.94(官方构建)(64 位) 中运行。
如您所见,行为不取决于您是否指定基数。
注意:我通常使用~~而不是parseInt,这样看起来更安全。
为什么我会得到这些结果?
【问题讨论】:
-
你在这里用带有这些参数的 parseInt 做什么。
-
唯一奇怪的是你在一个数字上调用
parseInt,而它显然需要一个字符串。你的意思是使用Math.floor? -
@guys,请参阅我在下面已经接受的答案中发表的评论,请不要一直问我用例以及为什么我这样调用函数???
-
使用
~~或Math.floor,而不是parseInt。它根本不是工作的正确工具(将数字转换为 int)
标签: javascript v8