2500 Stimmen

Wie wandelt man in JavaScript eine Zeichenkette in eine ganze Zahl um?

Wie konvertiere ich in JavaScript eine Zeichenkette in eine ganze Zahl?

7 Stimmen

Auf dieser Seite finden Sie unten eine gute Tabelle, in der verschiedene Umrechnungsmethoden verglichen werden: medium.com/@nikjohn/

1 Stimmen

In Ermangelung einer Klärung durch den Auftraggeber könnte diese Frage im Sinne einer Umwandlung interpretiert werden jede Zeichenkette in eine Zahl umzuwandeln, d.h. "Hund" in eine Zahl zu verwandeln (was natürlich auch möglich ist).

2 Stimmen

Er hat den Köder geschluckt: @DanielCarrera und doch hat niemand hier die Frage in diesem Sinne interpretiert. Wahrscheinlich, weil sie, wenn das das Ziel gewesen wäre, sehr wahrscheinlich ganz anders formuliert worden wäre. Schließlich wird das Verfahren, das dabei zum Einsatz kommt ("Hashing"), nicht als "Hash" bezeichnet und wurde auch nie als " Konvertierung zu einer ganzen Zahl".

19voto

tom Punkte 189

Vorsicht, wenn Sie parseInt verwenden, um einen Float in wissenschaftliche Notation zu konvertieren! Zum Beispiel:

parseInt("5.6e-14") 

führt zu

5 

anstelle von

0

17 Stimmen

Verwendung von parseInt würde für einen Schwimmer nicht richtig funktionieren. parseFloat funktioniert in diesem Fall ordnungsgemäß.

0 Stimmen

Dies ist ein berechtigtes Anliegen - sogar parseInt("2e2"), das eine ganze Zahl ist, wäre 200, wenn parseInt die Exponentialschreibweise verstehen würde, aber es gibt tatsächlich 2 zurück, weil es das nicht tut.

0 Stimmen

@kybernetikos - IMHO ist es nicht sinnvoll, von parseInt zu erwarten, dass es eine Float-Darstellung versteht. Es ist angemessener, parseFloat oder Number zu verwenden und dann nach Wunsch auf int zu runden oder abzuschneiden. Das ist eine klarere Aussage über die Absicht.

13voto

Devner Punkte 6327

Um einen String in einen Integer zu konvertieren, empfehle ich die Verwendung von parseFloat und NICHT parseInt. Hier ist der Grund dafür:

Verwendung von parseFloat:

parseFloat('2.34cms')  //Output: 2.34
parseFloat('12.5')     //Output: 12.5
parseFloat('012.3')    //Output: 12.3

Mit parseInt:

parseInt('2.34cms')  //Output: 2
parseInt('12.5')     //Output: 12
parseInt('012.3')    //Output: 12

Wie Sie bemerkt haben, verwirft parseInt die Werte nach den Dezimalstellen, während parseFloat Sie mit Fließkommazahlen arbeiten lässt und daher besser geeignet ist, wenn Sie die Werte nach den Dezimalstellen beibehalten wollen. Verwenden Sie parseInt nur, wenn Sie sich sicher sind, dass Sie einen Integer-Wert benötigen.

15 Stimmen

Die Frage lautete: "Wie konvertiere ich einen String in eine ganze Zahl in Javascript?

13voto

Können wir +(stringOfNumber) statt mit parseInt(stringOfNumber)

Ex: +("21") gibt int von 21 zurück, wie der parseInt("21") .

wir können diesen unären "+"-Operator auch für das Parsing von Float verwenden...

1 Stimmen

Sie können es aber nicht in Formeln verwenden! D.h. (1+("21"))*10 === 1210 !

2 Stimmen

@AlexanderVasilyev Ich denke, das kann man, würde man nicht einfach eine zusätzliche Klammer um die + ?

0 Stimmen

@NiCkNewman Ich bekomme +("21") aus dem Beispiel in der Antwort wir kommentieren.

13voto

Alireza Punkte 92209

In JavaScript gibt es viele Möglichkeiten, eine Zeichenkette in einen Zahlenwert umzuwandeln... Alle einfach und praktisch, wählen Sie den Weg, der für Sie funktioniert:

var num = Number("999.5"); //999.5
var num = parseInt("999.5", 10); //999
var num = parseFloat("999.5"); //999.5
var num = +"999.5"; //999.5

Auch jede Mathematik Operation wandelt sie in Zahlen um, zum Beispiel...

var num = "999.5" / 1; //999.5
var num = "999.5" * 1; //999.5
var num = "999.5" - 1 + 1; //999.5
var num = "999.5" - 0; //999.5
var num = Math.floor("999.5"); //999
var num = ~~"999.5"; //999

Ich bevorzuge den Weg über + Zeichen, was die elegante Art ist, eine Zeichenkette in JavaScript in eine Zahl umzuwandeln.

12voto

Henrik Hansen Punkte 2104

Nebenbei bemerkt: Mootools verfügt über die Funktion toInt(), die auf jeden nativen String (oder Float (oder Integer)) angewendet werden kann.

"2".toInt()   // 2
"2px".toInt() // 2
2.toInt()     // 2

7 Stimmen

Das dritte Beispiel verursacht eine SyntaxError sollten Sie einen Doppelpunkt verwenden, z. B.: 2..toInt(); der erste Punkt beendet die Darstellung einer Number Literal und der zweite Punkt ist der Eigenschafts-Accessor.

5 Stimmen

Diese Frage bezieht sich nicht auf Mootools, sondern auf JavaScript.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X