javascript中的大数字
Posted
技术标签:
【中文标题】javascript中的大数字【英文标题】:Large number in javascript 【发布时间】:2013-02-21 15:16:01 【问题描述】:我正在用javascript开发一个计算器,用户可以在文本字段中输入值并执行操作。 现在如果用户输入一个非常大的值 例如 5345345345353453453453535 转换为 5.345345345353453e+24
我正在使用 parsrInt() 将其转换为整数。它给了我5。 这是错误的。 有人可以建议如何解决吗?
【问题讨论】:
这可能有用:***.com/questions/11124451/… How to deal with big numbers in javascript的可能重复 【参考方案1】:javascript 中的整数与每个数字一样,存储为 IEEE754 双精度浮点数。
因此您只能精确存储最大为 2^51(尾数大小)的整数。
这意味着您必须设计另一种格式来处理大整数,或者使用现有的库,例如 BigInteger.js(Google 会建议其他一些格式)。
【讨论】:
【参考方案2】:取自Mozilla documentation:
解析一个字符串参数并返回一个指定基数的整数 或基地。
因此parseInt()
将您的值作为字符串5.345345345353453e+24
然后忽略任何非整数值并将其归类为小数 (5.345...),然后将其评估为 5
。
正如@dystroy 所指出的,如果您希望使用这些大数字进行计算,您需要使用自定义格式,或使用预先存在的 javascript 库。
【讨论】:
【参考方案3】:尝试使用 parseFloat 而不是 parseInt。
<script type="text/javascript">
var value = parseFloat(5345345345353453453453535);
alert(value);
</script>
【讨论】:
这不会给你5345345345353453453453535
,而只会给你四舍五入的值。以上是关于javascript中的大数字的主要内容,如果未能解决你的问题,请参考以下文章