Как сделать numeric из string?

unicorn23

Как вот из этой строки - "2" сделать numeric?

5 ответов

unicorn23

Если я правильно понял, и вам нужно из строки получить число, то используйте для этого parseInt():

var str = '2';
console.log(str + 2);
str = parseInt(str);
console.log(str + 2);


unicorn23

Есть еще вариант использовать двойное побитовое НЕ

var num = '2';
console.log(typeof ~~num);


unicorn23

  • самый быстрый способ умножение на 1 (str * 1)
var str = '2.2';
console.log((str * 1) + 2);
  • по аналогии выше: деление на 1 или вычитание 0
var str = '2.2';
console.log((str / 1) + 2);
console.log((str - 0) + 2);
  • чууууть медленнее добавление плюса перед строкой (+str)
var str = '2.2';
console.log((+str) + 2);
  • для целого и дробного с помощью Number
var str = '2.2';
console.log(Number(str) + 2);
  • вариант через round только для целого числа
var str = '2';
console.log(Math.round(str) + 2);
  • parseInt (для целых) и parseFloat (для дробных)

Для parseInt иногда стоит указать систему счисления.

var strFloat = '2.2';
var strInt = '2';
console.log(parseFloat(strFloat) + 2);
console.log(parseInt(strInt, 10) + 2);

Если не указать систему счисления, то может быть так:

var result = parseInt("010", 10) == 10; // Returns true
var result = parseInt("010") == 10; // Returns false

Но везде надо быть осторожным. Если в строке встречаются не только числа, но и другие символы, то это может не сработать. Например как написано тут: Разница ParseInt, ParseFloat и Number


unicorn23

Есть еще вариант, писать знак + перед string c цифрами.

var str = '2';
console.log(str + 2);
console.log(+str + 2);


unicorn23

Еще можно сделать с помощью динамической типизации языка JavaScript

var x = "2" console.log(typeof x) x=x*1 console.log(typeof x)

после этой операции x будет числом

licensed under cc by-sa 3.0 with attribution.