2010-02-24 3 views
16

Я пытаюсь использовать javascript для изменения string на int.пытается изменить строку -> int

var intVal = gSpread1.Text * 1; 

Я хочу Тип intVal «s быть int.

я могу получить целочисленное значение, если gSpread1.Text меньше 1000.

Но если gSpread1.Text больше, чем 1000, intVal возвращается NaN

Что такое правильный способ использовать ParseInt, чтобы гарантировать, что оно всегда возвращает значение int?

+0

Он должен работать, вам придется отладить и проверить значение, генерирующий 'NaN' ... – CMS

+0

благодарственное вы, теперь я поймаю причину. gSpread1.Text return с запятой (,) if gSpread1.Text is 1,234 конвертировать в int не работает ... Я действительно благодарю вас всех –

ответ

37

ли вы попробовать intVal = parseInt(gSpread1.Text, 10);

10-называется радикс, и указать систему счисления использовать.

UPDATE: Существует также полезный ярлык, используя символ +.
например: +gSpread1.Text преобразует строку в число. И вернет integer или float в зависимости от строкового значения.

+0

Хороший ответ - будьте осторожны parseInt без оснований, потому что «09» не является число (нет 9 в восьмеричном, что и префикс 0) – Nicole

+0

+1 для ярлыка :) – Binod

0

Следующий код работает для меня:

var intVal = parseInt("100000"); 
alert(intVal); 

Возможно разместить свой нерабочий код? Проблема может быть в другом месте.

2

Там нет типа INT в JavaScript. Только номер. parseInt отлично, если у вас есть не десятичное число, или у вас может быть хвост мусора в строке типа «5asdkfkasdk». Но для общего случая, когда вы знаете, что ваша строка - это только десятичные цифры, я предпочитаю использовать конструктор Number(). Он выглядит более элегантным, и он более знаком с программистами на C и Python, которые делают много кастингов.

var numericValue = Number("100000"); 
var numericValue2 = parseInt("100000", 10); 

Они дают одинаковый результат того же типа.

0

Если вы уверены, что ваша строка содержит ИНТ вы можете использовать только один +

var n = "455"; 
n = +n; // now n is integer 
Смежные вопросы