将大数字字符串转换为数字

时间:2017-08-15 14:01:45

标签: javascript typescript numbers

我可以用16位数和2分数值将数字转换为数字?

目前,当我尝试将Number('1234567890123456.12')转换为1234567890123456时。分数值将消失。

我只是想确认不使用任何第三方lib我可以将此字符串转换为数字吗?

3 个答案:

答案 0 :(得分:4)

不幸的是没有。 Javascript使用双精度浮点数表示它的数字。在16位数字处,它只能存储整数分量而不能存储小数点后的部分。您将需要一个bignum库来使用此值。

编辑:供参考,你可以在JavaScript中使用的最大整数是9,007,199,254,740,991

EDIT2:感谢Jeremy,你可以使用像bignumberJS这样的库。

答案 1 :(得分:1)

你的号码有太多的算法,我已经创建了一个例子,它在数组的第一个位置模拟javascript中可能的最大长度。

var nums = [
    "12345678910111.12", 
    "1.5323",  
    "-42.7789"
];

nums.forEach(function(n) {
    console.log(parseFloat(n).toFixed(2));
});

https://jsfiddle.net/7zzz1qzt/

答案 2 :(得分:0)

我遇到了将 18 位字符串数字转换为数字的问题。它是将 16 位数字后的所有数字转换为 0。我已经申请了下面的代码。它对我来说很好。

[{"id":${id},"name":"${name}"}]