hixon 发表于 2021-5-31 15:06:18

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

一般情况下我们把字符串转换成整数,可以使用JavaScript内部方法 parseInt()来转换,默认情况下它是按10进制转换的,如:
var a = parseInt('23'); // a的值是整数23
但是如果字符串是以0开头的,转换结果可能不是我们预期的10进制,如:
var a = parseInt('023'); // a的值是整数19

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

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

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




页: [1]
查看完整版本: 如何将以字符串0开头的字符串转换成10进制数?