如何在JavaScript中将字符串转换为长整型?

104

我有一个毫秒级的时间戳需要从字符串转换为长整型。JavaScript 有 parseInt 方法,但没有 parseLong 方法。那么我该怎么做呢?

稍微扩展一下我的问题:考虑到 JavaScript 显然没有长整型类型,如果最初以字符串形式表示长整型,我如何进行简单的长整型运算呢?例如,将一个时间戳减去另一个时间戳以获取时间差。


Javascript没有parseLong函数,因为它没有long类型。(一些有经验的老程序员可能会告诉您Javascript为什么从未拥有过long类型的故事。) - awm
那么在JavaScript中无法使用长整型进行算术运算吗? - Richard H
你能否给出一个代码示例,说明你想要做什么? - Russ Cam
@Russ - 你下面的回答已经解释得很清楚了,谢谢。 - Richard H
2个回答

133

JavaScript有一个Number类型,它是一个64位浮点数*。

如果您想将字符串转换为数字,请使用:

  1. 要么使用 parseInt() 或者parseFloat()函数。如果使用parseInt(),建议始终传递基数参数。
  2. 使用一元运算符+,例如+"123456"
  3. 使用Number构造函数,例如var n = Number("12343")

*在某些情况下,该数字会内部作为整数来处理。


2
那么,如果我想在Javascript中将字符串“71157133118211271”解析为数字/长整型,我该怎么做?将其拆分为16位字符串,分别解析每个字符串,然后将它们连接在一起吗? - Charlie Schliesser
2
@CharlieS 你可以使用像javascript-bignum (https://github.com/jtobey/javascript-bignum) 或 BigInt.js (http://www.leemon.com/crypto/BigInt.html) 这样的库来支持大数运算。 - Russ Cam
左侧有零要小心。 - user2447290

9

BigInt("1274836528318476135")


请参阅 https://dev59.com/Z1MI5IYBdhLWcg3wptVR。 - davetapley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接