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".

10voto

Thanveer Shah Punkte 3030

Hier ist die einfachste Lösung

let myNumber = "123" | 0;

Einfachere Lösung

let myNumber = +"123";

10voto

Michał Knapik Punkte 575

Meiner Meinung nach deckt keine Antwort alle Randfälle ab, da das Parsen eines Floats zu einem Fehler führen sollte.

function parseInteger(value) {
    if(value === '') return NaN;
    const number = Number(value);
    return Number.isInteger(number) ? number : NaN;
}

parseInteger("4")            // 4
parseInteger("5aaa")         // NaN
parseInteger("4.33333")      // NaN
parseInteger("aaa");         // NaN

2 Stimmen

Die Rückgabe von "Not A Number" ist ein wenig aggressiv für einen Umzugswagen, finden Sie nicht auch?

2 Stimmen

Es ist parseInteger , nicht parseNumber . Ich schätze, dass jede Lösung ein Workaround ist, da JS keine Integers und Floats als separate Typen unterstützt. Wir könnten zurückgeben null anstelle von NaN , wenn Not A Number irreführend ist.

10voto

zangw Punkte 36978

Essayez str - 0 zu konvertieren string a number .

> str = '0'
> str - 0
  0
> str = '123'
> str - 0
  123
> str = '-12'
> str - 0
  -12
> str = 'asdf'
> str - 0
  NaN
> str = '12.34'
> str - 0
  12.34

Hier sind zwei Links zum Vergleich der Leistung verschiedener Methoden zur Konvertierung von String in Int

https://jsperf.com/number-vs-parseint-vs-plus

http://phrogz.net/js/string_to_number.html

1 Stimmen

@AlexanderYau, per dies doc die '1' wird umgewandelt in 1 von ToNumber entonces 1 - 0 wäre 1

0 Stimmen

Was bedeuten die ">" Eingabeaufforderungen? Welche Umgebung?

0 Stimmen

@PeterMortensen, der > prompots ist von der Konsole von Chrome.

9voto

Sandeep Amarnath Punkte 2667

Der einfachste Weg wäre die Verwendung von + wie diese

const strTen = "10"
const numTen = +strTen      // string to number conversion
console.log(typeof strTen)  // string
console.log(typeof numTen)  // number

0 Stimmen

Das ist sehr wahrscheinlich schon in früheren Antworten behandelt worden.

7voto

kungfooman Punkte 3915

Google gab mir diese Antwort als Ergebnis, also...

Ich brauchte eigentlich zu "speichern" eine Zeichenfolge als eine ganze Zahl, für eine Bindung zwischen C und JavaScript, so dass ich die Zeichenfolge in einen Integer-Wert konvertieren:

/*
    Examples:
        int2str( str2int("test") ) == "test" // true
        int2str( str2int("t€st") ) // "t¬st", because "€".charCodeAt(0) is 8364, will be AND'ed with 0xff
    Limitations:
        max 4 chars, so it fits into an integer
*/
function str2int(the_str) {
    var ret = 0;
    var len = the_str.length;
    if (len >= 1) ret += (the_str.charCodeAt(0) & 0xff) <<  0;
    if (len >= 2) ret += (the_str.charCodeAt(1) & 0xff) <<  8;
    if (len >= 3) ret += (the_str.charCodeAt(2) & 0xff) << 16;
    if (len >= 4) ret += (the_str.charCodeAt(3) & 0xff) << 24;
    return ret;
}
function int2str(the_int) {
    var tmp = [
        (the_int & 0x000000ff) >>  0,
        (the_int & 0x0000ff00) >>  8,
        (the_int & 0x00ff0000) >> 16,
        (the_int & 0xff000000) >> 24
    ];
    var ret = "";
    for (var i=0; i<4; i++) {
        if (tmp[i] == 0)
            break;
        ret += String.fromCharCode(tmp[i]);
    }
    return ret;
}

5 Stimmen

Das ist eine interessante Art, 4-Byte-Werte zu speichern und abzurufen. Sie beantwortet nicht die herkömmliche Interpretation der Frage, wie man eine String-Darstellung einer Zahl in einen Integer-Wert umwandelt. Unabhängig davon, Ihr int2str Funktion stoppt, wenn ein Byte 0 ist, was ein zulässiges Element innerhalb des Wertes sein könnte, so dass die if ... break sollte entfernt werden, damit ein vollständiger 4-Byte-Wert zurückgegeben wird.

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