JS中parseInt使用问题解析

一般我们需要从其他地方(服务器或参数)获得一个字符串形式的数字(比如:str=“00057”)

而又想在此数据上进行算术操作,比如想得到str+2=59

那么我们就需要用到js的parseInt()函数

parseInt()是把对应的数字字符串数据化,并可以在其上进行相应的算术计算

然而,在使用parseInt()函数的时候,还需注意点小细节:

比如:parseInt("0057") 结果为57 ,而parseInt("0058")结果为5

parseInt("007")结果为7,而parseInt("008")结果为0

这与我们所祈愿的有所不同,究竟为何

parseInt()函数的完整形式是:parseInt(string, radix)的作用是将string转换为整数,第二个参数是设置string的格式,常用的有2、8、10、16,表示string是多少进制的数。

radix 可取值的范围是2~36,如果不在这个范围内,将返回NaN。


如果设置radix的值是0或者不设置时,会自动识别string的格式:
以 "0x" 开头,parseInt() 会把 string 除0x外的其余部分当作十六进制数,
以 "0" 开头,parseInt() 会把 string 除0外的字符当作八进制或十六进制数,
以 1 ~ 9 的数字开头,parseInt() 将把它当作十进制数。

所以产生上述原因是因为我们没有设置第二个类型参数,以致以"0"开头的字符串数据被当做了八进制

所以以后在使用parseInt(String,radix)函数时,把第二个进制参数加上,以防出错。

parseInt("0058",10)结果为58,就是我们想要的了

这表示把"0058"以十进制表示

转载于:https://www.cnblogs.com/qixing/archive/2013/05/09/parseInt.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值