如何在JavaScript中将字符串转换为整数?


当前回答

我只在字符串前加了一个加号(+),这就是解决方案!

+"052254" // 52254

其他回答

将数字的乘法与各自的十次幂相加:

即:123=100+20+3=1100+2+10+31=1*(10^2)+2*(10^1)+3*(10^0)

function atoi(array) {

    // Use exp as (length - i), other option would be
    // to reverse the array.
    // Multiply a[i] * 10^(exp) and sum

    let sum = 0;

    for (let i = 0; i < array.length; i++) {
        let exp = array.length - (i+1);
        let value = array[i] * Math.pow(10, exp);
        sum += value;
    }

    return sum;
}
function parseIntSmarter(str) {
    // ParseInt is bad because it returns 22 for "22thisendsintext"
    // Number() is returns NaN if it ends in non-numbers, but it returns 0 for empty or whitespace strings.
    return isNaN(Number(str)) ? NaN : parseInt(str, 10);
}

尝试parseInt。

var number = parseInt("10", 10); //number will have value of 10.

我用这个

String.prototype.toInt = function (returnval) {
    var i = parseInt(this);
     return isNaN(i) ? returnval !== undefined ? returnval : - 1  :      i;
}

var str = "7";
var num = str.toInt(); // outputs 7, if not str outputs -1
//or
var num = str.toInt(0); // outputs 7, if not str outputs 0

这样我总能得到一个整数。

JavaScript中的字符串到数字:

一元+(最推荐)

+numStr易于使用,性能优于其他支持整数和小数

console.log(+'123.45') // => 123.45

其他一些选项:

正在分析字符串:

整数的parseInt(numStr)整数和小数的parseFloat(numStr)

console.log(parseInt('123.456')) // => 123
console.log(parseFloat('123'))   // => 123

JavaScript函数

整数的数学函数,如round(numStr)、floor(numStr)、ceil(numStr)整数和小数的数字(numStr)

console.log(Math.floor('123'))     // => 123
console.log(Math.round('123.456')) // => 123
console.log(Math.ceil('123.454'))  // => 124
console.log(Number('123.123'))     // => 123.123

单目运算符

所有基本一元运算符,+numStr、numStr-0、1*numStr,numStr*1和numStr/1所有都支持整数和小数注意numStr+0。它返回一个字符串。

console.log(+'123')  // => 123
console.log('002'-0) // => 2
console.log(1*'5')   // => 5
console.log('7.7'*1) // => 7.7
console.log(3.3/1)   // =>3.3
console.log('123.123'+0, typeof ('123.123' + 0)) // => 123.1230 string

位运算符

两个波浪号~~numStr或左移0,numStr<<0只支持整数,不支持小数

console.log(~~'123')      // => 123
console.log('0123'<<0)    // => 123
console.log(~~'123.123')  // => 123
console.log('123.123'<<0) // => 123

//正在分析console.log(parseInt('123.456'))//=>123console.log(parseFloat('123'))//=>123//功能console.log(数学楼层('123'))//=>123console.log(数学舍入('123.456'))//=>123console.log(数学.ceil('123.454'))//=>124console.log(编号('123.123'))//=>123.123//Unary公司console.log(+'123')//=>123console.log('002'-0)//=>2console.log(1*'5')//=>5console.log('7.7'*1)//=>7.7console.log(3.3/1)//=>3.3console.log('123.123'+0,typeof('123.123'+0))//=>123.1230字符串//按位(Bitwise)console.log(~~'123')//=>123console.log('0123'<<0)//=>123console.log(~~'123.123')//=>123console.log('123.123'<<0)//=>123