WeStudio技术社区

 找回密码
 立即注册

快捷登录

QQ登录

只需一步,快速开始

查看: 1256|回复: 0

如何将以字符串0开头的字符串转换成10进制数?

[复制链接]

99

主题

142

帖子

1046

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1046
发表于 2021-5-31 15:06:18 | 显示全部楼层 |阅读模式
一般情况下我们把字符串转换成整数,可以使用JavaScript内部方法 parseInt()来转换,默认情况下它是按10进制转换的,如:
  1. var a = parseInt('23'); // a的值是整数23
复制代码

但是如果字符串是以0开头的,转换结果可能不是我们预期的10进制,如:
  1. var a = parseInt('023'); // a的值是整数19
复制代码


我们来看一下parseInt()方法的定义
  1. parseInt(string, radix)

  2. radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。
  3. 如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。
  4. 如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
  5. 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。
复制代码


所以为了正确地将‘0023’转换为10进制的23, 可以通过参数radix来指定基数10,如
  1. var a = parseInt('023', 10); // a的值是整数23
复制代码





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|物一世(北京)科技有限公司 ( 京ICP备20025895 )

GMT+8, 2024-4-20 02:56 , Processed in 0.010909 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表