Pretvaranje nizova u brojeve
parseInt()
Funkcija analizira string argument i vraća cijeli broj određenog radix (osnovica matematičkim brojkom sustavima).
parseInt(string, radix);
Parametri
string
Vrijednost za raščlanjivanje. Ako string
argument nije niz, tada se pretvara u niz (pomoću ToString
apstraktne operacije). Vodeći razmak u argumentu niza se zanemaruje. '= Radix Cijeli broj između 2 i 36 koji predstavlja radix (bazu u matematičkim brojevnim sustavima) gore spomenutog niza. Navedite 10
za sustav decimalnih brojeva koji se obično koristi od ljudi. Uvijek navedite ovaj parametar kako biste uklonili zbunjenost čitatelja i zajamčili predvidljivo ponašanje. Različite implementacije daju različite rezultate kada radiks nije naveden, a vrijednost je obično zadana na 10. Vrati vrijednost Cijeli broj raščlanjen iz zadanog niza. Ako se prvi znak ne može pretvoriti u broj, NaN
vraća se.
Opis
parseInt
Funkcija pretvara svoj prvi argument u nizu, to analizira i vraća cijeli broj ili NaN
. Ako nije NaN
, vraćena vrijednost bit će cijeli broj koji je prvi argument uzet kao broj u navedenom radixu (bazi). Na primjer, radijus 10 ukazuje na pretvaranje iz decimalnog broja, 8 osminskog, 16 heksadecimalnog i tako dalje. Za gornje radikse 10
slova abecede označavaju brojeve veće od 9. Na primjer, za heksadecimalne brojeve (baza 16) koristi se A
prolaz F
.
Ako parseInt
naiđe na znak koji nije broj u navedenom radixu, on ga zanemaruje i sve sljedeće znakove i vraća cijelu vrijednost raščlanjenu do te točke. parseInt
skraćuje brojeve na cjelobrojne vrijednosti. Dopušteni su vodeći i prateći prostori.
Budući da neki brojevi uključuju e
znak u prikazu niza (npr. 6.022e23
), Korištenje parseInt
za skraćivanje numeričkih vrijednosti rezultirat će neočekivanim rezultatima kada se koristi na vrlo velikim ili vrlo malim brojevima. parseInt
ne smije se koristiti kao zamjena za Math.floor()
.
Ako je radix undefined
ili 0 (ili ga nema), JavaScript pretpostavlja sljedeće:
- Ako ulaz
string
započinje s "0x" ili "0X", radix je 16 (heksadecimalni), a ostatak niza se raščlanjuje. - Ako unos
string
započinje s "0", radix je osam (osminski) ili 10 (decimalni). Točno koji odabrani radix ovisi o implementaciji. ECMAScript 5 navodi da se koristi 10 (decimalno), ali to još ne podržavaju svi preglednici. Iz tog razloga uvijek navedite radix kada koristite parseInt. - Ako unos
string
započinje bilo kojom drugom vrijednošću, radiks je 10 (decimalni). - Ako se prvi znak ne može pretvoriti u broj, parseInt vraća NaN.
U aritmetičke svrhe, NaN vrijednost nije broj u bilo kojem radixu. Možete pozvati funkciju isNaN da biste utvrdili je li rezultat parseInt NaN. Ako se NaN prenese na aritmetičke operacije, rezultati operacije također će biti NaN.
Da biste broj pretvorili u njegov literal niza u određenom radixu, upotrijebite intValue.toString (radix).
Primjeri
Korištenjem parseInt
sljedećih primjera svi se vraćaju 15
:
parseInt(' 0xF', 16); parseInt(' F', 16); parseInt('17', 8); parseInt(021, 8); parseInt('015', 10); // parseInt(015, 10); will return 15 parseInt(15.99, 10); parseInt('15,123', 10); parseInt('FXX123', 16); parseInt('1111', 2); parseInt('15 * 3', 10); parseInt('15e2', 10); parseInt('15px', 10); parseInt('12', 13);
Svi sljedeći primjeri se vraćaju NaN
:
parseInt('Hello', 8); // Not a number at all parseInt('546', 2); // Digits are not valid for binary representations
Svi sljedeći primjeri se vraćaju -15
:
parseInt('-F', 16); parseInt('-0F', 16); parseInt('-0XF', 16); parseInt(-15.1, 10) parseInt(' -17', 8); parseInt(' -15', 10); parseInt('-1111', 2); parseInt('-15e1', 10); parseInt('-12', 13);
Svi sljedeći primjeri se vraćaju 4
:
parseInt(4.7, 10); parseInt(4.7 * 1e22, 10); // Very large number becomes 4 parseInt(0.00000000000434, 10); // Very small number becomes 4
Sljedeći se primjer vraća 224
:
parseInt('0e0', 16);
Više informacija:
raščlaniti na MDN
- parseInt () i parseFloat () pokušavaju pretvoriti niz u broj ako je moguće. Na primjer,
var x = parseInt("100"); // x = 100
- Number () pretvorit će se u broj kojim vrijednost može biti predstavljena. To uključuje datume u broj milisekundi od ponoći 1. siječnja 1970. UTC, logičke vrijednosti na 1 ili 0, a vrijednosti koje se ne mogu pretvoriti u prepoznatljiv broj postat će NaN. To znači Niti jedan broj, a tehnički je i broj!