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
|
|
01.03.2010, 17:10
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
|
|
01.03.2010, 17:20
|
|
Аспирант
|
|
Регистрация: 16.11.2009
Сообщений: 79
|
|
охо-хо! помогло!
Эге-гей, народ!
|
|
01.03.2010, 18:08
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Если числа правильные (т.е. нужно просто преобразование, а не парсиг, для чего предназначен parseInt('08Gb', 10) - 8), то можно:
Number('08');
+'08';
|
|
02.03.2010, 09:16
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,576
|
|
А еще можно умножить на единицу. (ну и поделить тоже можно).
var tmp = "08";
tmp = tmp*1;
alert(tmp);
|
|
02.03.2010, 13:59
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Можно. Но не нужно:
alert(parseInt('08марта', 10)) // 8
alert('08марта'*1) // NaN
|
|
02.03.2010, 14:20
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
e1f,
Сообщение от Dmitry A. Soshnikov
|
Если числа правильные (т.е. нужно просто преобразование, а не парсиг, для чего предназначен parseInt('08Gb', 10) - 8)
|
|
|
02.03.2010, 15:18
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Kolyaj,
alert("0xf"*1);
alert(+"0xf")
Число правильное?
|
|
02.03.2010, 15:25
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от e1f
|
Число правильное?
|
Да.
alert([0xf, +'0xf']);
alert([08, +'08']);
|
|
02.03.2010, 15:45
|
|
Профессор
|
|
Регистрация: 03.04.2009
Сообщений: 1,263
|
|
Kolyaj, это я к тому, что можно при такой проверке на число, получить довольно неожиданный результат, особенно если мы рассчитываем получить число именно в десятичном формате (чаще всего еще и натуральное), а не строку, которая может, вполне случайно, оказаться "похожей" на число в 8-ном / 16-ном формате.
Для такой проверки вообще лучше регэксп /^\d+$/, емнип, а не то, что написано выше.
|
|
|
|