Kaip paversti eilutę į skaičių „JavaScript“ (su pavyzdžiais)

Stygų konvertavimas į skaičius

parseInt()Funkcija analizuoja string argumentą ir grąžina nurodyto Radix (toliau matematinės skaitmeniu sistemų bazinės) sveikasis skaičius.

parseInt(string, radix);

Parametrai

string

Nagrinėjama vertė. Jei stringargumentas nėra eilutė, tada jis paverčiamas eilute (naudojant ToStringabstrakčią operaciją). Neatsižvelgiama į pirmaujančią eilutę argumento eilutėje. '= Radix Sveikas skaičius tarp 2 ir 36, nurodantis pirmiau minėtos eilutės radix (matematinių skaičių sistemų pagrindą). Nurodykite 10žmonėms dažniausiai naudojamą dešimtainę skaičių sistemą. Visada nurodykite šį parametrą, kad pašalintumėte skaitytojų painiavą ir garantuotumėte nuspėjamą elgesį. Skirtingi diegimai duoda skirtingus rezultatus, kai nenurodomas radiksas, paprastai pagal numatytąją reikšmę nustatoma 10. Grąžinimo vertė Sveikasis skaičius, išanalizuotas iš pateiktos eilutės. Jei pirmojo simbolio negalima konvertuoti į skaičių, NaNgrąžinama.

apibūdinimas

parseIntFunkcija paverčia savo pirmąjį argumentą į eilutę, suvokia jį ir grąžina sveikasis skaičius arba NaN. Jei ne NaN, grąžinama reikšmė bus sveikasis skaičius, kuris yra pirmasis argumentas, paimtas kaip skaičius nurodytoje spindulyje (bazėje). Pavyzdžiui, 10 radiksas rodo, kad reikia konvertuoti iš dešimtainio skaičiaus, 8 aštuntojo, 16 šešioliktainio ir t. T. Aukščiau esančioms radicijoms 10abėcėlės raidės rodo skaitmenis, didesnius nei 9. Pavyzdžiui, šešioliktainiams skaičiams (16 bazė) naudojamas „ Athrough“ F.

Jei parseIntsusiduriate su simboliu, kuris nėra skaitmuo nurodytame spindulyje, jis ignoruoja jį ir visus sekančius simbolius ir grąžina sveiką skaičių, išanalizuotą iki šio taško. parseIntsutrumpina skaičius iki sveikųjų skaičių. Leidžiamos priekinės ir galinės vietos.

Kadangi kai kuriuose skaičiuose esimbolis įtrauktas į eilutės atvaizdą (pvz. 6.022e23), Naudojant parseIntskaičių reikšmių sutrumpinimą bus gauti netikėti rezultatai, kai bus naudojami labai dideli ar labai maži skaičiai. parseIntneturėtų būti naudojamas kaip pakaitalas Math.floor().

Jei radix yra undefinedarba 0 (arba nėra), „JavaScript“ daro prielaidą:

  • Jei įvestis stringprasideda „0x“ arba „0X“, radiksas yra 16 (šešioliktainis), o likusi eilutės dalis analizuojama.
  • Jei įvestis stringprasideda „0“, radiksas yra aštuoni (aštuonkojai) arba 10 (dešimtainiai). Tiksliai pasirinktas radiksas priklauso nuo įgyvendinimo. ECMAScript 5 nurodo, kad naudojamas 10 (dešimtainis), tačiau dar ne visos naršyklės tai palaiko. Dėl šios priežasties naudodami „parseInt“ visada nurodykite radix.
  • Jei įvestis stringprasideda bet kuria kita reikšme, radiksas yra 10 (dešimtainis).
  • Jei pirmojo simbolio negalima konvertuoti į skaičių, parseInt grąžina NaN.

Aritmetikos tikslais NaN reikšmė nėra skaičius jokioje radikse. Galite paskambinti funkcija isNaN, kad nustatytumėte, ar parseInt rezultatas yra NaN. Jei NaN bus perduotas aritmetinėms operacijoms, operacijos rezultatai taip pat bus NaN.

Norėdami konvertuoti skaičių į jo eilutės pažodį tam tikrame radikse, naudokite intValue.toString (radix).

Pavyzdžiai

Naudojant parseIntšiuos pavyzdžius, visi grįžta 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);

Pateikti šie pavyzdžiai NaN:

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

Pateikti šie pavyzdžiai -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);

Pateikti šie pavyzdžiai 4:

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

Šis pavyzdys pateikia 224:

parseInt('0e0', 16);

Daugiau informacijos:

parseInt MDN

  • parseInt () ir parseFloat () bando paversti eilutę į skaičių, jei įmanoma. Pavyzdžiui,var x = parseInt("100"); // x = 100
  • Skaičius () bus konvertuotas į skaičių, kuriuo reikšmė gali būti pavaizduota. Tai apima milisekundžių skaičių nuo 1970 m. Sausio 1 d. Vidurnakčio UTC, logines reikšmes iki 1 arba 0, o reikšmės, kurių negalima konvertuoti į atpažįstamą skaičių, taps NaN. Tai reiškia ne skaičių ir techniškai yra skaičius!