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?


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.


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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.