Wie konvertiere ich einen String in Long in Javascript?

84

Ich habe einen Millisekunden-Zeitstempel, den ich von einem String in einen langen konvertieren muss. Javascript hat eine parseIntaber keine parseLong. Wie kann ich das machen?

Vielen Dank

Bearbeiten: Um meine Frage etwas zu erweitern: Wie kann ich eine einfache Arithmetik mit Longs durchführen, die anfänglich als Zeichenfolgen ausgedrückt werden, da Javascript anscheinend keinen langen Typ hat? ZB voneinander subtrahieren, um ein Zeitdelta zu erhalten?

Richard H.
quelle
Javascript hat kein parseLong, weil es kein langes hat. (Ein Oldtimer kann Ihnen vielleicht eine Geschichte darüber erzählen, warum Javascript nie lang wurde.)
awm
Es ist also nicht möglich, mit Longs in Javascript zu rechnen?
Richard H
Können Sie ein Codebeispiel dafür geben, was Sie tun möchten?
Russ Cam
@Russ - Ihre Antwort unten erklärt alles. thx
Richard H

Antworten:

107

JavaScript hat einen NumberTyp, der eine 64-Bit-Gleitkommazahl * ist.

Wenn Sie eine Zeichenfolge in eine Zahl konvertieren möchten, verwenden Sie

  1. entweder parseIntoder parseFloat. Bei Verwendung parseIntwürde ich empfehlen, immer auch den Radix zu übergeben.
  2. Verwenden Sie den Unary- +Operator, z+"123456"
  3. Verwenden Sie den NumberKonstruktor, zvar n = Number("12343")

* Es gibt Situationen, in denen die Nummer intern als Ganzzahl gespeichert wird.

Russ Cam
quelle
1
Also, wenn ich die Zeichenfolge "71157133118211271"in Javascript auf eine Zahl / Länge analysieren wollte , wie würde ich das machen? Teilen Sie es in 16-stellige Zeichenfolgen auf, analysieren Sie jede einzeln und verketten Sie sie miteinander?
Charlie Schliesser
1
@CharlieS Sie verwenden eine Bibliothek wie javascript-bignum ( github.com/jtobey/javascript-bignum ) oder BigInt.js ( leemon.com/crypto/BigInt.html ), die große Zahlen unterstützt.
Russ Cam
0

Es ist, weil es kein longJavascript gibt.

http://javascript.about.com/od/reference/g/rlong.htm

Jakub Konecki
quelle
7
Lieber, es sind solche Artikel, die mich zum Kotzen bringen. "Weil jemand schon immer Typen einführen wollte, sollte man das Schlüsselwort immer noch nicht verwenden"
TFennis
1
Link ist unterbrochen.
Hamed Moghadasi