zoukankan      html  css  js  c++  java
  • 由parseInt("09")引发的问题

    在项目中使用到了parseInt("09")的转换,结果总是显示为0,在网上搜索了一下原来是由于进制引起来的问题。

    从parseInt("08")开始,都会是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() 将把它当作十进制数。

    由此可记住,以后在使用parseInt时,要把第二个参数写全,养成一个好习惯。

    写成parseInt("09",10)即可解决问题,将09按照十进制转换。

  • 相关阅读:
    codefroces 946F Fibonacci String Subsequences
    [HNOI2010]MATRIX 矩阵
    [HNOI2010]STONE取石头游戏
    [HNOI2010]PLANAR
    [HNOI2010]BUS 公交线路
    [HNOI2010]CHORUS 合唱队
    [HNOI2011]赛车游戏
    [HNOI2011]数矩形
    [HNOI2012]与非
    [BZOJ4200][NOI2015]小园丁与老司机
  • 原文地址:https://www.cnblogs.com/bingya/p/3011375.html
Copyright © 2011-2022 走看看