parseInt对小数部分

时间:2017-11-22 05:02:52

标签: javascript v8



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,它看起来更安全。

为什么我会得到这些结果?

1 个答案:

答案 0 :(得分:20)

如果参数不是字符串,则

parseInt将其第一个参数字符串化。 0.000008字符串化为'0.000008',但0.0000008字符串化为'8e-7'

如果parseInt在输入中找到无效字符,它会忽略该字符及其后的所有内容。对于基数10,.e无效(.对任何基都都无效),因此parseInt'0.000008'视为'0'并且'8e-7''8'

我不知道你在这里尝试做什么,但parseInt不是这样做的工具。