¿Cómo convertir una cadena a larga en javascript?


84

Tengo una marca de tiempo de milisegundos que necesito convertir de String a long. Javascript tiene un parseIntpero no un parseLong. Entonces, ¿cómo puedo hacer esto?

Gracias

Editar: Para ampliar un poco mi pregunta: dado que aparentemente javascript no tiene un tipo largo, ¿cómo puedo hacer aritmética simple con largos que inicialmente se expresan como cadenas? Por ejemplo, ¿restar uno del otro para obtener un delta de tiempo?


Javascript no tiene parseLong porque no tiene long. (Es posible que algún veterano pueda contarle una historia sobre por qué Javascript nunca se
alargó

¿Entonces no es posible hacer aritmética con longs en javascript?
Richard H

¿Puede dar un ejemplo de código de lo que quiere hacer?
Russ Cam

@Russ: su respuesta a continuación lo explica todo. thx
Richard H

Respuestas:


107

JavaScript tiene un Numbertipo que es un número de coma flotante de 64 bits *.

Si está buscando convertir una cadena en un número, use

  1. ya sea parseInto parseFloat. Si lo usa parseInt, recomendaría siempre pasar la base también.
  2. utilizar el +operador Unario , por ejemplo+"123456"
  3. usar el Numberconstructor, por ejemplovar n = Number("12343")

* hay situaciones en las que el número se mantendrá internamente como un entero.


1
Entonces, si quisiera analizar la cadena "71157133118211271"a un número / largo en Javascript, ¿cómo haría eso? ¿Dividirlo en cadenas de 16 dígitos, analizar cada uno de ellos por separado y concatenarlos juntos?
Charlie Schliesser

1
@CharlieS Utiliza una biblioteca como javascript-bignum ( github.com/jtobey/javascript-bignum ) o BigInt.js ( leemon.com/crypto/BigInt.html ) que proporciona soporte para grandes números.
Russ Cam

tenga cuidado con el cero al lado izquierdo
Cazs

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.