A karakterlánc számokká alakítása a JavaScript-ben (példákkal)

Húrok konvertálása számokká

A parseInt()függvény elemez egy string argumentumot, és a megadott radix egész számát adja vissza (a matematikai számrendszerek alapját).

parseInt(string, radix);

Paraméterek

string

Az elemzendő érték. Ha az stringargumentum nem karakterlánc, akkor karakterlánnyá konvertálódik (az ToStringabsztrakt művelet segítségével). A karakterlánc argumentumban a vezető szóközt figyelmen kívül hagyjuk. '= Radix A 2 és 36 közötti egész szám, amely a fent említett karaktersorozat (a matematikai számrendszerek alapja) értékét jelenti. Adja 10meg az emberek által általában használt tizedes számrendszert. Mindig adja meg ezt a paramétert az olvasó zavarának kiküszöbölése és a kiszámítható viselkedés garantálása érdekében. A különböző megvalósítások különböző eredményeket hoznak, ha egy radix nincs megadva, általában az alapértelmezett érték 10. Return value Az adott karakterláncból értelmezett egész szám. Ha az első karakter nem konvertálható számgá, NaNakkor a rendszer visszatér.

Leírás

A parseIntfüggvény az első argumentumát karakterláncokká alakítja, elemzi és egész számot vagy NaN. Ha nem NaN, akkor a visszaküldött érték az az egész szám lesz, amely az első argumentum, amelyet számként veszünk fel a megadott tartományban (alap). Például egy 10-es radix azt jelzi, hogy tizedes számból, 8 oktálisból, 16 hexadecimálisból stb. A fenti radikumok esetében 10az ábécé betűi 9-nél nagyobb számokat jeleznek. Például hexadecimális számokhoz (16. alap) a „ Athrough” Fértéket használjuk.

Ha parseIntolyan karakterrel találkozik, amely nem szám a megadott körben, figyelmen kívül hagyja azt és az összes következő karaktert, és visszaadja az adott pontig értelmezett egész értéket. parseIntcsonkolja a számokat egész értékekre. A vezető és a hátsó hely megengedett.

Mivel egyes számok tartalmazzák a ekaraktert a karakterlánc-reprezentációjukban (pl. 6.022e23), A parseIntnumerikus értékek csonkolásával váratlan eredményeket hozhatunk, ha nagyon nagy vagy nagyon kicsi számokat használunk. parseIntnem használható a Math.floor().

Ha a radix értéke undefined0 vagy nincs (vagy hiányzik), a JavaScript a következőket feltételezi:

  • Ha a bemenet string„0x” vagy „0X” betűvel kezdődik, a radix értéke 16 (hexadecimális), és a karakterlánc fennmaradó része elemzésre kerül.
  • Ha a bemenet string„0” -val kezdődik, akkor a radix nyolc (oktális) vagy 10 (tizedes). Hogy pontosan melyik radixot választják, az megvalósítástól függ. Az ECMAScript 5 meghatározza, hogy 10 (tizedes) legyen, de még nem minden böngésző támogatja ezt. Ezért a parseInt használatakor mindig adjon meg egy radixot.
  • Ha a bemenet stringbármely más értékkel kezdődik, akkor a radix értéke 10 (tizedes).
  • Ha az első karakter nem konvertálható számgá, a parseInt visszaadja a NaN értéket.

Számtani szempontból a NaN-érték egyetlen radixban sem szám. Az isNaN függvény meghívásával meghatározhatja, hogy a parseInt eredménye NaN. Ha a NaN-t átadják a számtani műveleteknek, akkor a művelet eredményei szintén NaN lesznek.

Ha a számot egy adott radix karakterláncévá kívánja konvertálni, használja az intValue.toString (radix) parancsot.

Példák

Használata parseIntA következő példák minden visszatér 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);

A következő példák mind visszatérnek NaN:

parseInt('Hello', 8); // Not a number at all parseInt('546', 2); // Digits are not valid for binary representations

A következő példák mind visszatérnek -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);

A következő példák mind visszatérnek 4:

parseInt(4.7, 10); parseInt(4.7 * 1e22, 10); // Very large number becomes 4 parseInt(0.00000000000434, 10); // Very small number becomes 4

A következő példa visszatér 224:

parseInt('0e0', 16);

Több információ:

parseInt az MDN-en

  • a parseInt () és a parseFloat () megpróbálja konvertálni a karakterláncot számra, ha lehetséges. Például,var x = parseInt("100"); // x = 100
  • A szám () számokká konvertálódik, amellyel az érték képviselhető. Ez magában foglalja az 1970. január 1-jei éjfél utáni milliszekundumok dátumát, a logikai értékeket 1-re vagy 0-ra, és azok az értékek, amelyek nem konvertálhatók felismerhető számra, NaN -akká válnak. Ez a Not a Number rövidítése, és technikailag is szám!