大家都知道paserInt吧,为什么parseInt("08")==0和parseInt("09")==0?而别的都是转化为相应的整数。例如parseInt("07")==7等等?
大家都知道paserInt吧,为什么parseInt("08")==0和parseInt("09")==0?而别的都是转化为相应的整数。例如parseInt("07")==7等等?还有别的将string转化为int的函数吗? 问题点数:20、回复次数:8Top
1 楼ttyp(@http://www.cnblogs.com/ttyp/)回复于 2004-12-03 09:51:51 得分 3
不能以0开头,这样会被认为是8进制Top
2 楼meizz(梅花雪)回复于 2004-12-03 09:52:16 得分 4
是你不会用 parseInt 方法, 它有第二个参数, 就是进制参数
parseInt("08", 10); //表示这个数字是十进制的就不会出错了.Top
3 楼ttyp(@http://www.cnblogs.com/ttyp/)回复于 2004-12-03 09:54:03 得分 3
alert(parseInt("08",10));Top
4 楼gct(独孤飘雪)回复于 2004-12-03 09:55:30 得分 0
那为什么ParseInt("09")==0?Top
5 楼konamiking(一塌糊涂)回复于 2004-12-03 09:58:01 得分 4
parseInt方法:
描述
返回由字符串转换得到的整数。
语法
parseInt(numstring, [radix])
parseInt 方法的语法有如下部分:
部分 描述
numstring 必需的。要转换为数字的字符串。
radix 可选项。在 2 和 36 之间的表示 numstring 所保存数字的进制的值。如果没有提供,则前缀为 '0x' 的字符串被当作十六进制,前缀为 '0' 的字符串被当作八进制。所有其它字符串都被当作是十进制的。
说明
parseInt 方法返回与保存在 numstring 中的数字值相等的整数。如果 numstring 的前缀不能解释为整数,则返回 NaN(而不是数字)。
parseInt("abc") // 返回 NaN.
parseInt("12abc") // 返回 12.
可以用 isNaN 方法检测 NaN。Top
6 楼ttyp(@http://www.cnblogs.com/ttyp/)回复于 2004-12-03 10:06:30 得分 3
因为8,9在8进制里是非法数字,溢出了Top
7 楼JK_10000(JK)回复于 2004-12-03 10:09:18 得分 3
parseInt("09")==0
与以下是一样的道理
parseInt("0ddd")==0
parseInt("01ddd")==1
只截取前面可以认识的部分,再转化成整数
8、9对八进制数而言,是不能解释的字符Top
8 楼konamiking(一塌糊涂)回复于 2004-12-03 10:11:13 得分 0
ok!
Top




