Come convertire una stringa in long in javascript?


85

Ho un timestamp in millisecondi che devo convertire da una stringa a una lunga. Javascript ha un parseIntma non un parseLong. Allora come posso farlo?

Grazie

Modifica: per espandere leggermente la mia domanda: dato che apparentemente javascript non ha un tipo lungo, come posso fare semplici operazioni aritmetiche con i lunghi che sono inizialmente espressi come stringhe? Ad esempio, sottrarre uno dall'altro per ottenere un delta temporale?


Javascript non ha un parseLong perché non ha un lungo. (Alcuni veterani potrebbero essere in grado di raccontarti una storia sul perché Javascript non ha mai avuto molto tempo.)
awm

Quindi non è possibile eseguire operazioni aritmetiche con long in javascript ??
Richard H

puoi fornire un esempio di codice di ciò che vuoi fare?
Russ Cam

@Russ - la tua risposta di seguito spiega tutto. grazie
Richard H

Risposte:


109

JavaScript ha un Numbertipo che è un numero in virgola mobile a 64 bit *.

Se stai cercando di convertire una stringa in un numero, usa

  1. o parseInto parseFloat. Se lo usi parseInt, consiglierei di passare sempre anche il radix.
  2. utilizzare l' +operatore unario es+"123456"
  3. usa il Numbercostruttore esvar n = Number("12343")

* ci sono situazioni in cui il numero sarà tenuto internamente come un numero intero.


1
Quindi, se volessi analizzare la stringa "71157133118211271"in un numero / lungo in Javascript, come dovrei farlo? Dividerlo in stringhe di 16 cifre, analizzarle separatamente e concatenarle insieme?
Charlie Schliesser

1
@CharlieS Utilizzi una libreria come javascript-bignum ( github.com/jtobey/javascript-bignum ) o BigInt.js ( leemon.com/crypto/BigInt.html ) che fornisce supporto per grandi numeri.
Russ Cam

attenzione con lo zero sul lato sinistro
Cazs

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.