Попытка изменить строку → int
Я пытаюсь использовать javascript для изменения string
на int
.
var intVal = gSpread1.Text * 1;
Я хочу intVal
Тип int
.
Я могу получить значение int, если gSpread1.Text
меньше 1000.
Но если gSpread1.Text
больше 1000, intVal
возвращает NaN
Каков правильный способ использования ParseInt
, чтобы он всегда возвращал значение int
?
Ответы
Ответ 1
Пробовал ли вы intVal = parseInt(gSpread1.Text, 10);
10 называется основанием и указывает используемую систему цифр.
ОБНОВЛЕНИЕ: Также есть полезный ярлык с использованием символа +
.
например: +gSpread1.Text
преобразует строку в число. И вернет integer
или float
в зависимости от строкового значения.
Ответ 2
В JavaScript нет типа int. Только номер. parseInt отлично, если у вас есть не десятичное число, или у вас может быть хвост мусора в строке типа "5asdkfkasdk". Но для общего случая, когда вы знаете, что ваша строка - это только десятичные цифры, я предпочитаю использовать конструктор Number(). Он выглядит более элегантным, и он более знаком с программистами на C и Python, которые делают много кастинга.
var numericValue = Number("100000");
var numericValue2 = parseInt("100000", 10);
Они дают один и тот же результат одного и того же типа.
Ответ 3
Посмотрите, как правильно преобразовать даже большие числа.
Ответ 4
Следующий код работает для меня:
var intVal = parseInt("100000");
alert(intVal);
Возможно, разместите свой нерабочий код? Проблема может быть в другом месте.
Ответ 5
Если вы уверены, что ваша строка содержит int, вы можете использовать только один +
var n = "455";
n = +n; // now n is integer