【发布时间】:2022-01-22 18:28:14
【问题描述】:
这正常吗?
newItemRowNumber
'0.11'
parseInt(newItemRowNumber)
0
我希望它是不可解析的。
【问题讨论】:
标签: javascript parsing
这正常吗?
newItemRowNumber
'0.11'
parseInt(newItemRowNumber)
0
我希望它是不可解析的。
【问题讨论】:
标签: javascript parsing
这是正常的,因为 parseInt 只会从给定的数字字符串中删除小数部分。并返回点左侧数字的 int 值。 这是链接parseInt() in JS。
当你更好地解析浮点数时,你可以使用 parseFloat()
console.log(parseFloat("0.11"))
>>0.11
【讨论】:
parseInt 将字符串解析为字符串开头的实数 0-9。当它遇到一个非整数字符时,它会停止解析,在这种情况下是 .
19aaa 变成 19
0.11变成0
11.111 变成 11
abc11 变为 NaN
0xDEAD 变成 57005(因为是十六进制数)
【讨论】:
来自MDN:
如果 parseInt 在指定的基数中遇到不是数字的字符,它会忽略它和所有后续字符并返回解析到该点的整数值。 parseInt 将数字截断为整数值。允许前导和尾随空格。
0 是一个数字。
. 不是。
所以它需要0,忽略.,忽略.之后的所有内容,然后你得到0。
【讨论】: