[ koherodin @ 02.02.2012. 00:14 ] @
Da li se još nekom dešava da JavaScript na poziv parseInt("09") daje rezultat 0. Zna li neko zašto ? |
[ koherodin @ 02.02.2012. 00:14 ] @
[ Aleksandar Ružičić @ 02.02.2012. 02:12 ] @
To se desava iz razloga sto parseInt prepoznaje brojeve u oktalnom, decimalnom i heksadecimalnom zapisu.
Oktalni zapis pocinje sa nulom i prati ga jedna ili vise cifara od 0 do 7, npr 0100 u oktalnom zapisu je jednako 64 u decimalnom. Kada parseInt detektuje 0 kao prvu cifru, a drugi karakter nije x (jer je 0x pocetak heksadecimlanog zapisa, npr 0x100 je 256 u decimalnom sistemu), on nastavlja da cita string kao da je u pitanju oktalni broj, a kako cifra 9 nije validna u oktalnom zapisu onda vraca nulu (isto ce se desiti i ako je posle nule 8). Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|