Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Пеобразовать из строки 08 в число 8 (https://javascript.ru/forum/misc/7975-peobrazovat-iz-stroki-08-v-chislo-8-a.html)

балерун 01.03.2010 17:08

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

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

покажет "0", и как это понимать? Хотя тут все понятно, как мне адекватно перевести "08" в 8?
Входная строка не всегда начинается с нуля, она всегда двузначная, т.е. могут быть, например, числа: 04 08 15 26 23 42

e1f 01.03.2010 17:10

parseInt(tmp, 10)

балерун 01.03.2010 17:20

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

Эге-гей, народ!

Dmitry A. Soshnikov 01.03.2010 18:08

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

Number('08');
+'08';

micscr 02.03.2010 09:16

А еще можно умножить на единицу. (ну и поделить тоже можно).
var tmp = "08";
tmp = tmp*1;
alert(tmp);

e1f 02.03.2010 13:59

Можно. Но не нужно:
alert(parseInt('08марта', 10)) // 8
alert('08марта'*1) // NaN

Kolyaj 02.03.2010 14:20

e1f,
Цитата:

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


e1f 02.03.2010 15:18

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

Число правильное? ;)

Kolyaj 02.03.2010 15:25

Цитата:

Сообщение от e1f
Число правильное?

Да.
alert([0xf, +'0xf']);
alert([08, +'08']);

e1f 02.03.2010 15:45

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


Часовой пояс GMT +3, время: 02:01.