Вопрос по int, type-conversion, javascript, string, numeric – Как преобразовать строковую переменную в int в JavaScript?

3

Как правильно преобразовать значение переменной String в переменную типа int / numeric? ПочемуbcInt еще строка и почемуisNaN вернутьtrue?

bc=localStorage.getItem('bc');
var bcInt=parseInt(bc,10);
var bcInt2=1;
console.log("bc------------>" +bc +" isNaN:" +isNaN(bc)); //isNaN returns true
console.log("bcInt------------>" +bcInt +" isNaN:" +isNaN(bcInt)); //isNaN returns true

bcInt2// isNaN returns false
Пойнти получил очко. Я использовал функцию stringify в другом месте, а затем была двойная кавычка, и это было причиной! Спасибо за помощь всем. Sami
08-20 18: 41: 02.880: bc ------------ & gt; "1" IsNaN: правда Sami
Какое значение содержится в локальном хранилищеbc? Если это не число (пустое, содержит буквенные символы и т. Д.), Это то, что я ожидал бы увидеть. Oded
Если вокруг символов двойные кавычки1 тогда это не сработает. Pointy
ЕслиparseInt() возвращаетNaNтогда ваша строка на самом деле не содержит числового представления значения. Если бы вы сказали нам, каково значение & quot; bc & quot; есть, тогда, возможно, кто-то может помочь, но вы не смогли этого сделать. Это значение, конечно, является ключом ко всей проблеме. Pointy

Ваш Ответ

2   ответа
0

localStorage.setItem('bc',JSON.stringify(bc)) и он добавил двойную кавычкуbc потому что в этом случае это была уже строка, и именно поэтомуparseInt не работал. Значение было""1"".

У меня такая же проблема, как эта. до сих пор нет решения
8

parseInt возвращает число только в том случае, если вы передадите ему число в качестве первого символа.

Примеры:

parseInt( 'a', 10 ); // NaN
parseInt( 'a10', 10 ); // NaN
parseInt( '10a', 10 ); // 10
parseInt( '', 10 ); // NaN
parseInt( '10', 10 ); // 10

Кроме того, вы можете взглянуть на+ оператор, если вы хотите получить строки, которые являются только числами.

+'a'; // NaN
+'a10'; // NaN
+'10a'; // NaN
+''; // 0, that's tricky
+'10'; // 10

Изменить. Согласно вашему комментарию, я проверилparseInt:

parseInt( '08-20 19:41:02.880', 10 ); // 8

Вы делаете что-то еще не так.parseInt возвращает все, пока это не число. Если первый номер не является числом (или не находит никакого числа), он возвращаетNaN.

+1 для одинарного+ Оператор.

Похожие вопросы