Unterschied zwischen parseInt() und parseFloat() [duplicate]

Lesezeit: 3 Minuten

Benutzer-Avatar
Iam_Signal

Mögliches Duplikat:

Verhaltensunterschied zwischen parseInt() und parseFloat()

var box  = $('.box'),
fontSize = parseInt(box.css('font-size'), 10) + 5;

 $('button').on('click', function() {
  box.animate({fontSize: fontSize});
});

//..

 var box  = $('.box'),
 fontSize = parseFloat(box.css('font-size'), 10) + 5;

  $('button').on('click', function() {
    box.animate({fontSize: fontSize})
});

was ist der unterschied zwischen..

**fontSize = parseInt(box.css('font-size'), 10);**

**fontSize = parseFloat(box.css('font-size'), 10);**

und und warum sollte 10 als Kontext gesetzt werden. Bitte helfen Sie?

Benutzer-Avatar
Techie

JavaScript bietet zwei Methoden zum Konvertieren von Nicht-Zahlen-Primitiven in Zahlen: parseInt() und parseFloat() . Wie Sie vielleicht erraten haben, wandelt Ersteres einen Wert in eine Ganzzahl um, während Letzteres einen Wert in eine Fließkommazahl umwandelt.

Jedes Zahlenliteral, das in einem String enthalten ist, wird ebenfalls korrekt konvertiert, sodass der String “0xA” korrekt in die Zahl 10 konvertiert wird. Der String “22.5” wird jedoch in 22 konvertiert, da der Dezimalpunkt ein ungültiges Zeichen für eine ganze Zahl ist . Einige Beispiele:

var iNum1 = parseInt(“1234blue”); // gibt 1234 zurück

var iNum2 = parseInt(“0xA”); //gibt 10 zurück

var iNum3 = parseInt(“22.5”); //gibt 22 zurück

var iNum4 = parseInt(“blau”); //gibt NaN zurück

Die Methode parseInt() hat auch einen Radix-Modus, mit dem Sie Zeichenfolgen in binärer, oktaler, hexadezimaler oder jeder anderen Basis in eine Ganzzahl konvertieren können. Der Radix wird als zweites Argument für parseInt() angegeben, sodass ein Aufruf zum Analysieren eines Hexadezimalwerts wie folgt aussieht:

var iNum1 = parseInt(“AF”, 16); //gibt 175 zurück

Natürlich kann dies auch für Binär, Oktal und sogar Dezimal (das ist der Standardmodus) durchgeführt werden:

var iNum1 = parseInt(“10”, 2); //gibt 2 zurück

var iNum2 = parseInt(“10”, 8); //gibt 8 zurück

var iNum2 = parseInt(“10”, 10); //gibt 10 zurück

Wenn Dezimalzahlen eine führende Null enthalten, ist es immer am besten, die Basis als 10 anzugeben, damit Sie nicht versehentlich einen Oktalwert erhalten. Zum Beispiel:

var iNum1 = parseInt(“010”); // gibt 8 zurück

var iNum2 = parseInt(“010”, 8); // gibt 8 zurück

var iNum3 = parseInt(“010”, 10); //gibt 10 zurück

In diesem Code parsen beide Zeilen die Zeichenfolge “010” in eine Zahl. Die erste Zeile geht davon aus, dass die Zeichenfolge ein Oktalwert ist, und analysiert sie auf die gleiche Weise wie die zweite Zeile (die die Basis als 8 angibt). Die letzte Zeile gibt eine Basis von 10 an, sodass iNum3 gleich 10 ist.

Ein weiterer Unterschied bei der Verwendung von parseFloat() besteht darin, dass der String eine Gleitkommazahl in dezimaler Form darstellen muss, nicht oktal oder hexadezimal. Diese Methode ignoriert führende Nullen, sodass die Oktalzahl 0908 in 908 geparst wird und die Hexadezimalzahl 0xA NaN zurückgibt, da x kein gültiges Zeichen für eine Gleitkommazahl ist. Es gibt auch keinen Radix-Modus für parseFloat() .

Einige Beispiele für die Verwendung von parseFloat() :

var fNum1 = parseFloat(“1234blue”); //gibt 1234 zurück

var fNum2 = parseFloat(“0xA”); //gibt 0 zurück

var fNum3 = parseFloat(“22.5”); //Rückgabe 22.5

var fNum4 = parseFloat(“22.34.5”); //Rückkehr 22.34

var fNum5 = parseFloat(“0908”); //gibt 908 zurück

var fNum6 = parseFloat(“blau”); //gibt NaN zurück

Weiterlesen,
Weiterlesen

Ähnliche Frage Lesen Sie hier mehr

  • Gute Antwort. Eine Bitte. Sie haben “var fNum1 = parseFloat(“1234blue”); //returns 1234.0″ geschrieben. Aber die Realität ist, dass 1234.0 == 1234 in Javascript, da es nur einen numerischen Typ gibt. Indem Sie 1234.0 für das parseFloat-Ergebnis und 1234 für das parseInt-Ergebnis schreiben, implizieren Sie, dass es einen Unterschied zwischen den beiden Ergebnissen gibt, obwohl dies tatsächlich nicht der Fall ist.

    – Emir

    7. Oktober 2014 um 4:38 Uhr

  • parseFloat(“0xA”); gibt kein NaN zurück, zumindest in meinem Test. Es gibt 0 zurück, weil es 0 parst und bei x stoppt.

    – Raketenschnell

    15. Oktober 2014 um 17:31 Uhr

Erstmal nur parseInt akzeptiert zweites Argument. Es heißt Radix. Es stellt das zu verwendende Zahlensystem dar. Beispielsweise können Sie eine Zahl in einen Binär- oder Hexadezimalcode umwandeln.

parseFloat akzeptiert nur ein Argument.

1017880cookie-checkUnterschied zwischen parseInt() und parseFloat() [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy