Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.03.2010, 17:08
Аватар для балерун
Аспирант
Отправить личное сообщение для балерун Посмотреть профиль Найти все сообщения от балерун
 
Регистрация: 16.11.2009
Сообщений: 79

Пеобразовать из строки 08 в число 8
Фуннцкия parseInt(); выдает ноль!
Пример

var tmp = "08";
tmp = parseInt(tmp);
alert(tmp);

покажет "0", и как это понимать? Хотя тут все понятно, как мне адекватно перевести "08" в 8?
Входная строка не всегда начинается с нуля, она всегда двузначная, т.е. могут быть, например, числа: 04 08 15 26 23 42
Ответить с цитированием
  #2 (permalink)  
Старый 01.03.2010, 17:10
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

parseInt(tmp, 10)
Ответить с цитированием
  #3 (permalink)  
Старый 01.03.2010, 17:20
Аватар для балерун
Аспирант
Отправить личное сообщение для балерун Посмотреть профиль Найти все сообщения от балерун
 
Регистрация: 16.11.2009
Сообщений: 79

охо-хо! помогло!

Эге-гей, народ!
Ответить с цитированием
  #4 (permalink)  
Старый 01.03.2010, 18:08
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Если числа правильные (т.е. нужно просто преобразование, а не парсиг, для чего предназначен parseInt('08Gb', 10) - 8), то можно:

Number('08');
+'08';
__________________
Тонкости ECMAScript
Ответить с цитированием
  #5 (permalink)  
Старый 02.03.2010, 09:16
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,576

А еще можно умножить на единицу. (ну и поделить тоже можно).
var tmp = "08";
tmp = tmp*1;
alert(tmp);
Ответить с цитированием
  #6 (permalink)  
Старый 02.03.2010, 13:59
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Можно. Но не нужно:
alert(parseInt('08марта', 10)) // 8
alert('08марта'*1) // NaN
Ответить с цитированием
  #7 (permalink)  
Старый 02.03.2010, 14:20
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

e1f,
Сообщение от Dmitry A. Soshnikov
Если числа правильные (т.е. нужно просто преобразование, а не парсиг, для чего предназначен parseInt('08Gb', 10) - 8)
Ответить с цитированием
  #8 (permalink)  
Старый 02.03.2010, 15:18
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Kolyaj,
alert("0xf"*1);
alert(+"0xf")

Число правильное?
Ответить с цитированием
  #9 (permalink)  
Старый 02.03.2010, 15:25
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от e1f
Число правильное?
Да.
alert([0xf, +'0xf']);
alert([08, +'08']);
Ответить с цитированием
  #10 (permalink)  
Старый 02.03.2010, 15:45
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Kolyaj, это я к тому, что можно при такой проверке на число, получить довольно неожиданный результат, особенно если мы рассчитываем получить число именно в десятичном формате (чаще всего еще и натуральное), а не строку, которая может, вполне случайно, оказаться "похожей" на число в 8-ном / 16-ном формате.
Для такой проверки вообще лучше регэксп /^\d+$/, емнип, а не то, что написано выше.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удалить слово из строки mycoding Общие вопросы Javascript 16 27.12.2013 15:06
Отфильтровать строки в таблице по заданным критериям Hag1989 Общие вопросы Javascript 0 03.12.2009 02:06
Для события onCLick получить индекс строки и объект грида. progi2007 ExtJS 4 05.08.2009 11:31
число во время boozer Элементы интерфейса 4 25.04.2009 01:58
Как прибавлять число к числу? Forgott Общие вопросы Javascript 9 06.05.2008 08:47