Làm thế nào để chuyển đổi một chuỗi thành long trong javascript?


84

Tôi có một dấu thời gian mili giây mà tôi cần chuyển đổi từ Chuỗi thành dài. Javascript có một parseIntnhưng không a parseLong. Vì vậy, làm thế nào tôi có thể làm điều này?

Cảm ơn

Chỉnh sửa: Để mở rộng một chút cho câu hỏi của tôi: do dường như javascript không có kiểu dài, làm cách nào tôi có thể tính toán số học đơn giản với độ dài ban đầu được biểu thị dưới dạng chuỗi? Ví dụ: trừ một cái cho cái kia để có được một đồng bằng thời gian?


Javascript không có parseLong vì nó không có dài. (Một số người có thời gian cũ có thể kể cho bạn một câu chuyện về lý do tại sao Javascript không bao giờ có thời gian dài.)
awm

Vì vậy, không thể làm số học với longs trong javascript ??
Richard H

bạn có thể cho một ví dụ mã về những gì bạn muốn làm không?
Russ Cam,

@Russ - câu trả lời của bạn dưới đây giải thích tất cả. thx
Richard H

Câu trả lời:


107

JavaScript có một Numberloại là số dấu phẩy động 64 bit *.

Nếu bạn đang tìm cách chuyển đổi một chuỗi thành một số, hãy sử dụng

  1. hoặc parseInthoặc parseFloat. Nếu sử dụng parseInt, tôi khuyên bạn nên luôn chuyển cơ số.
  2. sử dụng +toán tử đơn nguyên, ví dụ:+"123456"
  3. sử dụng hàm Numbertạo ví dụvar n = Number("12343")

* có những trường hợp trong đó số sẽ được giữ bên trong dưới dạng số nguyên.


1
Vì vậy, nếu tôi muốn phân tích cú pháp chuỗi "71157133118211271"thành một số / dài trong Javascript, tôi sẽ làm như thế nào? Chia nó thành các chuỗi có 16 chữ số, phân tích cú pháp từng chuỗi riêng biệt và nối chúng với nhau?
Charlie Schliesser

1
@CharlieS Bạn sử dụng thư viện như javascript-bignum ( github.com/jtobey/javascript-bignum ) hoặc BigInt.js ( leemon.com/crypto/BigInt.html ) cung cấp hỗ trợ cho số lượng lớn.
Russ Cam

hãy cẩn thận với số 0 ở bên trái
Cazs

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.