Як перетворити рядок на long у javascript?


84

У мене є мілісекундна мітка часу, яку мені потрібно перетворити з рядка в довгу. Javascript має, parseIntале не має parseLong. То як я можу це зробити?

Дякую

Редагувати: Щоб трохи розширити моє питання: враховуючи те, що, мабуть, javascript не має довгого типу, як я можу зробити просту арифметику з довгими, які спочатку виражаються як рядки? Наприклад, відніміть одне від іншого, щоб отримати дельту часу?


У Javascript немає parseLong, оскільки він не має довгого. (Деякі старожили можуть розповісти вам історію про те, чому Javascript ніколи не
затягувався

Тож неможливо робити арифметику з longs у javascript ??
Richard H

Ви можете навести приклад коду того, що ви хочете зробити?
Russ Cam

@Russ - ваша відповідь нижче пояснює все це. thx
Richard H

Відповіді:


107

JavaScript має Numberтип, який є 64-бітовим числом із плаваючою комою *.

Якщо ви хочете перетворити рядок у число, використовуйте

  1. або parseIntабо parseFloat. Якщо ви використовуєте parseInt, я б рекомендував завжди передавати і radix.
  2. використовуйте +оператор Unary, наприклад+"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

будьте обережні з нулем ліворуч
Каз

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.