Untersuchung und Korrektur des seltsamen Verhaltens von parseInt() in js

Untersuchung und Korrektur des seltsamen Verhaltens von parseInt() in js

Hintergrund:

Ich frage mich, ob Ihnen aufgefallen ist, dass „parseInt(0.006)“ oder „parseInt(0.0006)“ den Wert 0 zurückgibt, „parseInt(0.0000006)“ jedoch den seltsamen Wert 6 zurückgibt. Warum ist das so?

Was ist die parseInt-Funktion?

Zunächst einmal: Was ist die Funktion von parseInt()? Es handelt sich um eine native Methode von js, die zum Konvertieren einer numerischen Zeichenfolge in eine Zahl vom Typ „Number“ verwendet wird. Dabei wird nur der ganzzahlige Teil konvertiert.

Parsen bedeutet Konvertierung. Int ist eine Ganzzahl. Der Zweck besteht darin, sie in eine Ganzzahl umzuwandeln.

var num = parseInt(demo ,radix); //demo ist die Zahl, die Sie konvertieren möchten

Übergeben eines Parameters

var demo = "123";
var num = parseInt(demo);
console.log(typeof(num) + ":" + num); //Nummer: 123

var demo = true;
var num = parseInt(demo);
console.log(typeof(num) + ":" + num); //Zahl: NaN

var demo = false;
var num = parseInt(demo);
console.log(typeof(num) + ":" + num); //Zahl: NaN

var demo = 123,9;
var num = parseInt(demo);
console.log(typeof(num) + ":" + num); //Zahl: 123, schneide die Dezimalstellen direkt ab, ohne zu runden var demo = "10";
var num = parseInt(demo, 16);
console.log(typeof(num) + ":" + num); //Zahl: 16

Verwendung der Übergabe von zwei Parametern

var num = parseInt(demo, radix); //radix bedeutet Basis

Erklärung: Wenn die Basis als 16 geschrieben wird, denkt das System, dass sie auf Hexadezimalzahlen basiert. 10 (Null) ist Null in Hexadezimalzahlen, was auf Hexadezimalzahlen basiert. Konvertieren Sie es in Dezimalzahlen (also 16). Das Obige basiert auf der Zielbasis und wird in Dezimalzahlen konvertiert (Basisbereich ist 2-36).

Beispiel:

//1.
parseInt(10,2) //Das Ergebnis ist 2, da 10 als Binärzahl betrachtet und in eine Dezimalzahl umgewandelt wird, um 2 zu erhalten.

//2
var demo = "123abc";
var num = parseInt(demo);
console.log(typeof(num) + “:” + num); //Ergebnis: Zahl: 123 
//Weil parseInt bei der numerischen Klasse beginnt und bei der nicht-numerischen Klasse endet und die ursprüngliche Zahl zurückgibt

Den Ursachen auf der Spur

Wir haben festgestellt, dass unser ideales Ziel darin besteht, alle Dezimalzahlen in 0 umzuwandeln, aber parseInt (0.0000006) gibt 6 zurück, was unerhört ist.

konsole.log(parseInt(0.006)) //0
konsole.log(parseInt(0.0006)) //0
konsole.log(parseInt(0.00006)) //0
konsole.log(parseInt(0.000006)) //0
konsole.log(parseInt(0.0000006)) //6

Als ich zurückkam, begann ich, die Gründe und den Ort des Problems zu erforschen.

parseInt(0,0000006) //0,000006
Zeichenfolge (0,0000006); //6e-7
parseInt(6e-7); //6
parseInt(0,0000006) //6

Zusammenfassung der Gründe

Jetzt habe ich den Grund gefunden. Es stellt sich heraus, dass sich die Form nach 10 hoch -6 in eine komplexe Zahl (6e-7) ändert. Verwenden Sie dann parseInt(), um die 6 in 6e-7 zurückzugeben, sodass der endgültig zurückgegebene Wert 6 ist.

richtig

Wenn Sie die Dezimalzahl sicher zurückgeben möchten, müssen Sie eine andere Methode verwenden!

Math.floor(0,00006); //0
Math.floor(0,000006); //0
Math.floor(0,0000006); //0

Auf diese Weise erhalten Sie den gewünschten Wert.

Zusammenfassen

Dies ist das Ende dieses Artikels über das seltsame Verhalten von parseInt() in js. Weitere Informationen zu parseInt() in js finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der JS-Konvertierungsfunktionen Number(), parseInt(), parseFloat()
  • Tiefgreifendes Verständnis von Number(), parseInt() und parseFloat() in JS
  • Detaillierte Erklärung des Unterschieds zwischen Number(), parseInt() und parseFloat() in js
  • Analyse der Verwendung von parseInt() und map() in JS
  • Definition und Verwendungsanalyse der Funktion parseInt() in Javascript
  • Die Javascript-Funktion parseInt() hat einen Fehler bei der Konvertierung
  • Einführung in die Verwendung der parseInt()-Methode des globalen Objekts in Javascript
  • JavaScript parseInt() Funktion Basiskonvertierung Achtung Details
  • Eine kurze Diskussion über die Magie von parseInt() in JavaScript

<<:  Detaillierte Erklärung zur Verwendung von MySQL-Gruppenlinks

>>:  Detaillierte Erläuterung der geplanten Aufgaben für normale Benutzer unter Linux

Artikel empfehlen

Eine kurze Diskussion zur Logikextraktion und Feldanzeige von Vue3 in Projekten

Inhaltsverzeichnis Logische Schichtung Trennen Si...

Grafisches Tutorial zur kostenlosen Installationsversion von MySQL 5.7.21 winx64

Konfigurationsmethode für die kostenlose Installa...

So konfigurieren Sie Openbox für den Linux-Desktop (empfohlen)

Dieser Artikel ist Teil einer Sonderserie zu den ...

Ein Artikel, der Ihnen ein tiefes Verständnis von Mysql-Triggern vermittelt

Inhaltsverzeichnis 1. Wenn beim Einfügen oder Änd...

Thumbnail-Hover-Effekt mit CSS3 implementiert

Ergebnisse erzielenImplementierungscode html <...

Details zur Überwachung von DOM-Elementen durch MutationObServer in JavaScript

1. Grundlegende Verwendung Es kann über den Mutat...

Nutzungs- und Best-Practice-Handbuch für die Überwachung in Vue3

Inhaltsverzeichnis Vorwort 1. API-Einführung 2. Ü...

Kreisförmiger Fortschrittsbalken mit CSS implementiert

Ergebnisse erzielen Implementierungscode html <...

Lösung für den Überlauf der HTML-Tabelle

Wenn die Tabelle breit ist, kann es zu einem Über...

Alibaba Cloud ESC Server Docker-Bereitstellung von Single Node Mysql

1. Laden Sie die beschleunigte Version von msyql ...

Drei gängige Methoden, um HTML-Seiten nach 3 Sekunden automatisch zu springen

In der Praxis stoßen wir häufig auf ein Problem: ...