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?


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.


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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.