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

2 minutos de lectura

avatar de usuario
ricardo h

Tengo una marca de tiempo de milisegundos que necesito convertir de una cadena a larga. JavaScript tiene un parseInt pero no un parseLong. Entonces, ¿cómo puedo hacer esto?

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 un parseLong porque no tiene un largo. (Algún veterano puede contarle una historia sobre por qué Javascript nunca se hizo largo).

    – ahm

    27 de marzo de 2011 a las 14:58


  • Entonces, ¿no es posible hacer aritmética con largos en javascript?

    – Ricardo H.

    27 de marzo de 2011 a las 15:02


  • ¿Puedes dar un ejemplo de código de lo que quieres hacer?

    – Rus Cam

    27 de marzo de 2011 a las 15:12

  • @Russ: su respuesta a continuación lo explica todo. gracias

    – Ricardo H.

    27 de marzo de 2011 a las 15:21

avatar de usuario
cámara rusa

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

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

  1. o parseInt o parseFloat. si usa parseIntrecomendaría siempre pasar el radix también.
  2. usa el unario + operador por ejemplo +"123456"
  3. utilizar el Number constructor por ejemplo var n = Number("12343")

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

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

    –Charlie Schliesser

    29 de agosto de 2013 a las 22:37

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

    – Rus Cam

    23/04/2014 a las 20:23

  • tenga cuidado con cero a la izquierda

    – Cazs

    1 de octubre de 2020 a las 7:09

BigInt("1274836528318476135")

  • Consulte también stackoverflow.com/questions/55646698/base-36-to-bigint

    – Davetapley

    22 abr a las 22:30

¿Ha sido útil esta solución?