Как преобразовать строку в длинную в javascript?

85

У меня есть отметка времени миллисекунды, которую мне нужно преобразовать из String в long. Javascript имеет, parseIntно не имеет parseLong. Так как я могу это сделать?

благодаря

Изменить: чтобы немного расширить мой вопрос: учитывая, что, по-видимому, javascript не имеет длинного типа, как я могу выполнять простую арифметику с длинными, которые изначально выражаются как строки? Например, вычесть одно из другого, чтобы получить разницу во времени?

Ричард Х
источник
В Javascript нет parseLong, потому что у него нет long. (Некоторые старожилы могут рассказать вам историю о том, почему Javascript никогда не становился длинным.)
awm
Значит, в javascript нельзя делать арифметические операции с длинными?
Ричард Х
можете ли вы привести пример кода того, что вы хотите сделать?
Russ Cam
@Russ - ваш ответ ниже все объясняет. спасибо
Ричард Х

Ответы:

109

JavaScript имеет Numberтип, который представляет собой 64-битное число с плавающей запятой *.

Если вы хотите преобразовать строку в число, используйте

  1. либо, parseIntлибо parseFloat. При использовании parseIntя бы также рекомендовал всегда передавать основание системы счисления.
  2. используйте унарный +оператор, например+"123456"
  3. используйте Numberконструктор, напримерvar n = Number("12343")

* бывают ситуации, когда внутреннее число будет храниться как целое число.

Расс Кэм
источник
1
Итак, если бы я хотел разобрать строку "71157133118211271"на число / long в Javascript, как бы я это сделал? Разбить его на 16-значные строки, проанализировать каждую из них отдельно и объединить вместе?
Чарли Шлиссер
1
@CharlieS Вы используете такую ​​библиотеку, как javascript-bignum ( github.com/jtobey/javascript-bignum ) или BigInt.js ( leemon.com/crypto/BigInt.html ), которая обеспечивает поддержку больших чисел.
Russ Cam
будьте осторожны с нулем влево
Cazs
0

Это потому, что longв javascript нет.

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

Якуб Конецки
источник
7
Дорогой, есть такие статьи, от которых меня тошнит. «Поскольку кто-то когда-либо хотел представить типы, вы все равно не должны использовать ключевое слово»
TFennis
2
Ссылка не работает.
Хамед Могхадаси