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

时间:2016-01-18 11:19:15

标签: javascript floating-accuracy

我试图将大/非常长的数字字符串转换为数字:

+'-000000098765432112345.67898765432100000';
'-000000098765432112345.67898765432100000'*1;
parseFloat('-000000098765432112345.67898765432100000', 10);

所有这些测试都会输出-98765432112345.67而不是预期的-98765432112345.678987654321

为什么会这样?

NB:建议的重复解决方案无法回答我的问题,只是解决了问题。

1 个答案:

答案 0 :(得分:2)

大数字的常见原因是溢出:https://en.wikipedia.org/wiki/Arithmetic_overflow

这回答了类似的问题'在Javascript':What is JavaScript's highest integer value that a Number can go to without losing precision?

中会出现溢出的情况