Как преобразовать строку в длинную в 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
Ссылка не работает.
Хамед Могхадаси
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.