parseInt、parseFloat、new Number 对待进制的区别

作者:vkvi 来源:ITPOW(原创) 日期:2010-9-18

对待八进制

alert(parseInt("08")); // 显示 0
alert(parseInt("018")); // 显示 1
alert(parseFloat("08")); // 显示 8
alert(new Number("08")); // 显示 8

可以看出:

  • parseInt 要认八进制,以 0 开头的字符串,被当作八进制,后面若有大于 7 的数,则该数及以后的内容被忽略。
  • parseFloat 不认识八进制;
  • new Number 不认识八进制。

对待十六进制

alert(parseInt("0x16")); // 显示 22
alert(parseFloat("0x16")); // 显示 0
alert(new Number("0x16")); // 显示 22

可以看出:

  • parseFloat 要认十六进制,以 0x 开头的字符串,被当作十六进制。
  • parseFloat 不认十六进制,x 及后面的内容被忽略。
  • new Number 要认十六进制。

结论

  • parseInt 要认八、十六进制;
  • parseFloat 不认八、十六进制;
  • new Number 不认八进制、认十六进制。
相关文章