字符串到长转换的数字丢失

时间:2018-01-12 09:19:33

标签: javascript angularjs

我有我需要转换Long的字符串。我使用Number和parseFloat数字值得到改变880786793918868 4786 - >> 880786793918868 5000

  

我必须将INC8807867939188684786转换为8807867939188684786作为   长或数

"INC8807867939188684786".slice(3)
output :  "8807867939188684786"

第一次尝试

Number("INC8807867939188684786".slice(3))
 Output : 8807867939188685000

第二次尝试

 parseFloat("INC8807867939188684786".slice(3))
14:39:36.420 8807867939188685000

2 个答案:

答案 0 :(得分:0)

据我所知,可以精确存储在JavaScript中的最大整数是2 ^ 53(9007199254740992)。避免它的唯一方法是使用像https://github.com/MikeMcl/big.js

这样的库

Source

答案 1 :(得分:0)

JavaScript数字存储有限位数(16)。通常,您可以通过两种方式解决此问题:

  1. 使用字符串存储您的数字(如果您不需要对大数字进行计算,则可以使用)

  2. 将Big Number库之一用于javascript。您可以尝试BigNumbers,它是一个新鲜的,有据可查且受到积极支持的库