document.write(parseInt("07"));
生成 "7"。
document.write(parseInt("08"));
产生"0"
这对我造成了问题(很抱歉要这样说,不然我就不能提交问题)。有人知道为什么它很傻或者是否有更好的函数吗?
document.write(parseInt("07"));
生成 "7"。
document.write(parseInt("08"));
产生"0"
这对我造成了问题(很抱歉要这样说,不然我就不能提交问题)。有人知道为什么它很傻或者是否有更好的函数吗?
如果你的参数以0开头,则它将被解析为八进制,而08不是有效的八进制数。提供第二个参数10
来指定基数-一个十进制数。
document.write(parseInt("08", 10));
使用这个修改
parseInt("08",10);
parseInt(string, radix)
的规则如下:
如果省略了进制参数,JavaScript 将按照以下方式处理:
您希望parseInt('08', 10)
以十进制解析。
parseInt()函数解析字符串并返回一个整数。
radix参数用于指定要使用的数字系统,例如,radix为16(十六进制)表示应将字符串中的数字从十六进制转换为十进制。
如果省略radix参数,则JavaScript假定以下内容:
- 如果字符串以“0x”开头,则radix为16(十六进制)
- 如果字符串以“0”开头,则radix为8(八进制)。此功能已弃用
- 如果字符串以任何其他值开头,则radix为10(十进制)
因此,07和08被解析为八进制。这就是为什么07是7,08是0(它被四舍五入到最接近的值)的原因。
试试这个:
parseInt('08', 10)
它将会产生8