Jak przekonwertować ciąg znaków na długi w javascript?

84

Mam znacznik czasu milisekund, który muszę przekonwertować z ciągu na długi. JavaScript ma rozszerzenie, parseIntale nie parseLong. Więc jak mogę to zrobić?

Dzięki

Edycja: Aby nieco rozwinąć moje pytanie: biorąc pod uwagę, że najwyraźniej javascript nie ma długiego typu, jak mogę wykonać prostą arytmetykę z długimi liczbami, które są początkowo wyrażone jako ciągi? Np. Odjąć jeden od drugiego, aby uzyskać deltę czasu?

Richard H.
źródło
JavaScript nie ma parseLong, ponieważ nie ma long. (Jakiś weteran może opowiedzieć Ci historię o tym, dlaczego Javascript nigdy nie
trwał
Więc nie można wykonywać arytmetyki z długimi wartościami w javascript?
Richard H,
czy możesz podać przykład kodu tego, co chcesz zrobić?
Russ Cam
@Russ - Twoja odpowiedź poniżej wyjaśnia wszystko. thx
Richard H

Odpowiedzi:

107

JavaScript ma Numbertyp 64-bitowej liczby zmiennoprzecinkowej *.

Jeśli chcesz przekonwertować ciąg na liczbę, użyj

  1. albo parseIntalbo parseFloat. Jeśli używasz parseInt, polecam również zawsze przekazywać radix.
  2. użyj +operatora jednoargumentowego np+"123456"
  3. użyj Numberkonstruktora npvar n = Number("12343")

* Istnieją sytuacje, w których liczba będzie wewnętrznie przechowywana jako liczba całkowita.

Russ Cam
źródło
1
Tak więc, gdybym chciał przeanalizować ciąg "71157133118211271"do liczby / długości w JavaScript, jak bym to zrobił? Podzielić go na 16-cyfrowe ciągi, przeanalizować każdy z nich osobno i połączyć je razem?
Charlie Schliesser
1
@CharlieS Korzystasz z biblioteki, takiej jak javascript-bignum ( github.com/jtobey/javascript-bignum ) lub BigInt.js ( leemon.com/crypto/BigInt.html ), która zapewnia obsługę dużych liczb.
Russ Cam
uważaj na zero po lewej stronie
Cazs
0

To dlatego, że nie ma longw javascript.

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

Jakub Konecki
źródło
7
Kochanie, takie artykuły sprawiają, że mam ochotę zwymiotować. „Ponieważ ktoś kiedykolwiek chciał wprowadzić typy, nadal nie powinieneś używać słowa kluczowego”
TFennis,
2
Link jest uszkodzony.
Hamed Moghadasi