javascript中的大数字

Large number in javascript

本文关键字:数字 javascript      更新时间:2023-09-26

我正在用javascript开发一个计算器,用户可以在文本字段中输入值,然后执行操作。现在,如果用户输入一个非常大的值例如534534534534453535转换为5.345345345353453e+24

我正在使用parsrInt()将其转换为整数。它给了我5分。这是错误的。有人能建议怎么解决吗?

javascript中的整数与所有数字一样,存储为IEEE754双精度浮点。

因此,您只能精确存储2^51(尾数大小)以下的整数。

这意味着你必须设计另一种处理大整数的格式,或者使用像BigInteger.js这样的现有库(谷歌会建议其他一些)。

摘自Mozilla文档:

分析字符串参数并返回指定基数的整数或碱。

因此parseInt()将您的值作为字符串5.345345345353453e+24

然后它忽略任何非整数值,并将其分类为十进制(5.345…),然后将其计算为5


正如@dystroy所指出的,如果你想用这些大数字进行计算,你需要使用自定义格式,或者使用预先存在的javascript库。

尝试parseFloat而不是parseInt。

<script type="text/javascript">
    var value = parseFloat(5345345345353453453453535);
    alert(value);
</script>