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 string
argumentum nem karakterlánc, akkor karakterlánnyá konvertálódik (az ToString
absztrakt 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 10
meg 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á, NaN
akkor a rendszer visszatér.
Leírás
A parseInt
fü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 10
az ábécé betűi 9-nél nagyobb számokat jeleznek. Például hexadecimális számokhoz (16. alap) a „ A
through” F
értéket használjuk.
Ha parseInt
olyan 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. parseInt
csonkolja a számokat egész értékekre. A vezető és a hátsó hely megengedett.
Mivel egyes számok tartalmazzák a e
karaktert a karakterlánc-reprezentációjukban (pl. 6.022e23
), A parseInt
numerikus értékek csonkolásával váratlan eredményeket hozhatunk, ha nagyon nagy vagy nagyon kicsi számokat használunk. parseInt
nem használható a Math.floor()
.
Ha a radix értéke undefined
0 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
string
bá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 parseInt
A 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!