Kako pretvoriti niz u broj u JavaScript-u (s primjerima)

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 stringargument nije niz, tada se pretvara u niz (pomoću ToStringapstraktne 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 10za 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, NaNvraća se.

Opis

parseIntFunkcija 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 10slova abecede označavaju brojeve veće od 9. Na primjer, za heksadecimalne brojeve (baza 16) koristi se Aprolaz F.

Ako parseIntnaiđ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. parseIntskraćuje brojeve na cjelobrojne vrijednosti. Dopušteni su vodeći i prateći prostori.

Budući da neki brojevi uključuju eznak u prikazu niza (npr. 6.022e23), Korištenje parseIntza skraćivanje numeričkih vrijednosti rezultirat će neočekivanim rezultatima kada se koristi na vrlo velikim ili vrlo malim brojevima. parseIntne smije se koristiti kao zamjena za Math.floor().

Ako je radix undefinedili 0 (ili ga nema), JavaScript pretpostavlja sljedeće:

  • Ako ulaz stringzapočinje s "0x" ili "0X", radix je 16 (heksadecimalni), a ostatak niza se raščlanjuje.
  • Ako unos stringzapoč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 stringzapoč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 parseIntsljedeć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!