Sådan konverteres en streng til et nummer i JavaScript (med eksempler)

Konvertering af strenge til tal

Den parseInt()funktion analyserer en strengargument og returnerer et helt tal på den angivne radix (basen i matematiske talsystemer).

parseInt(string, radix);

Parametre

string

Værdien, der skal analyseres. Hvis stringargumentet ikke er en streng, konverteres det til en streng (ved hjælp af den ToStringabstrakte handling). Ledende hvidt område i strengargumentet ignoreres. '= Radix Et heltal mellem 2 og 36, der repræsenterer radixen (basen i matematiske numeriske systemer) for den ovennævnte streng. Angiv 10det decimalsystem, der ofte bruges af mennesker. Angiv altid denne parameter for at fjerne læsereforvirring og for at garantere forudsigelig opførsel. Forskellige implementeringer giver forskellige resultater, når en radix ikke er angivet, og som standard er værdien standardværdien 10. Returværdi Et helt tal, der er analyseret fra den givne streng. Hvis det første tegn ikke kan konverteres til et nummer, NaNreturneres.

Beskrivelse

Den parseInt-funktionen konverterer sit første argument til en streng, analyserer den og returnerer et heltal eller NaN. Hvis ikke NaN, vil den returnerede værdi være det heltal, der er det første argument taget som et tal i den angivne radix (base). For eksempel angiver en radix på 10 at konvertere fra et decimaltal, 8 oktal, 16 hexadecimal osv. For radiser ovenfor 10angiver bogstaverne i alfabetet tal større end 9. For eksempel anvendes hexadecimale tal (base 16) Agennem F.

Hvis der parseIntmøder et tegn, der ikke er et tal i den angivne radix, ignorerer det det og alle efterfølgende tegn og returnerer heltalets værdi parset op til det punkt. parseInttrunkerer tal til heltal. Ledende og bageste rum er tilladt.

Da nogle tal inkluderer etegnet i deres strengrepræsentation (f.eks. 6.022e23), parseIntVil brug af til at afkorte numeriske værdier give uventede resultater, når de bruges på meget store eller meget små tal. parseIntbør ikke bruges som erstatning for Math.floor().

Hvis radix er undefinedeller 0 (eller fraværende) antager JavaScript følgende:

  • Hvis input stringbegynder med “0x” eller “0X”, er radix 16 (hexadecimal), og resten af ​​strengen analyseres.
  • Hvis indgangen stringbegynder med “0”, er radix otte (oktal) eller 10 (decimal). Præcis hvilken radix der vælges er implementeringsafhængig. ECMAScript 5 specificerer, at der anvendes 10 (decimal), men ikke alle browsere understøtter dette endnu. Af denne grund skal du altid angive en radix, når du bruger parseInt.
  • Hvis input stringbegynder med en anden værdi, er radixen 10 (decimal).
  • Hvis det første tegn ikke kan konverteres til et tal, returnerer parseInt NaN.

Til aritmetiske formål er NaN-værdien ikke et tal i nogen radix. Du kan ringe til isNaN-funktionen for at afgøre, om resultatet af parseInt er NaN. Hvis NaN overføres til aritmetiske operationer, vil driftsresultaterne også være NaN.

For at konvertere nummeret til dets streng i en bestemt radix skal du bruge intValue.toString (radix).

Eksempler

Ved hjælp af parseIntfølgende eksempler vender alle tilbage 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);

Følgende eksempler vender alle tilbage NaN:

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

Følgende eksempler vender alle tilbage -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);

Følgende eksempler vender alle tilbage 4:

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

Følgende eksempel vender tilbage 224:

parseInt('0e0', 16);

Mere information:

parseInt på MDN

  • parseInt () og parseFloat () forsøger at konvertere strengen til et tal, hvis det er muligt. For eksempel,var x = parseInt("100"); // x = 100
  • Number () konverteres til et tal, som værdien kan repræsenteres af. Dette inkluderer datoer i antallet af millisekunder siden midnat 1. januar 1970 UTC, boolske værdier til 1 eller 0, og værdier, der ikke kan konverteres til et genkendeligt tal, bliver NaN. Det står for Not a Number og er teknisk set også et nummer!