parseInt有BUG,谁能知道为什么!

Ozzman 2002-07-10 11:30:38
year = parseInt("2002");
month = parseInt("07");
day = parseInt("09");
alert(day);

alert结果为0,出错!
想切磋到:OzzyJMalmsteen@yahoo.com
...全文
54 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjhua 2002-07-10
  • 打赏
  • 举报
回复
parseInt()函数用于将字符串值转换成整数。parseInt()函数返回字符串的第一个整数,如果字符串不以整数开头则返回0。注意这里parseInt()函数将09当作8进制来处理的,当然没有09这样的整数(8进制),所以只返回0!
改为day = parseInt("011");或day = parseInt("0x9");或用十进制,都能得到正确的信息。
zjhua 2002-07-10
  • 打赏
  • 举报
回复
parseInt()函数用于将字符串值转换成整数。parseInt()函数返回字符串的第一整数,如果字符串不以整数开头则返回0。没有09这样的整数,当然只返回0(但有0这样的整数,所以返回0)!
Kyle-soft 2002-07-10
  • 打赏
  • 举报
回复
一个简单的方法:
day = parseInt(parseFloat("09"));//返回要么为整数要么NaN(isNaN检测)
alert(day);

zhiwen_huang 2002-07-10
  • 打赏
  • 举报
回复
you must use
day = parseInt("09",10);

parseInt 方法
返回由字符串转换得到的整数。

parseInt(numString, [radix])

参数
numString

必选项。要转换为数字的字符串。

radix

可选项。在 2 和 36 之间的表示 numString 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。

说明
parseInt 方法返回与保存在 numString 中的数字值相等的整数。如果 numString 的前缀不能解释为整数,则返回 NaN(而不是数字)。

parseInt("abc") // 返回 NaN。
parseInt("12abc") // 返回 12。可以用 isNaN 方法检测 NaN。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧