将大数字从字符串转换为数字
Converting big numbers from string to number
我正在尝试将 big/very 长数字字符串转换为数字:
+'-000000098765432112345.67898765432100000';
'-000000098765432112345.67898765432100000'*1;
parseFloat('-000000098765432112345.67898765432100000', 10);
所有这些测试将输出 -98765432112345.67
而不是预期的 -98765432112345.678987654321
。
为什么会这样?
注意:提议的重复解决方案没有回答我的问题,它只是给出了问题的解决方案。
大数字的常见原因是溢出:https://en.wikipedia.org/wiki/Arithmetic_overflow.
这回答了类似的问题 'at what point will overflow occur in Javascript':What is JavaScript's highest integer value that a Number can go to without losing precision?
我正在尝试将 big/very 长数字字符串转换为数字:
+'-000000098765432112345.67898765432100000';
'-000000098765432112345.67898765432100000'*1;
parseFloat('-000000098765432112345.67898765432100000', 10);
所有这些测试将输出 -98765432112345.67
而不是预期的 -98765432112345.678987654321
。
为什么会这样?
注意:提议的重复解决方案没有回答我的问题,它只是给出了问题的解决方案。
大数字的常见原因是溢出:https://en.wikipedia.org/wiki/Arithmetic_overflow.
这回答了类似的问题 'at what point will overflow occur in Javascript':What is JavaScript's highest integer value that a Number can go to without losing precision?