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>
相关文章:
- 使用全局变量来存储数字(JavaScript)
- 字符串到数字JavaScript
- 查找总和最大的数字(Javascript)
- 将字符串中的重复字符替换为不断增长的数字 [Javascript]
- 选择下拉选项时显示数字-javascript
- 用户在数字上输入金额,然后输出最高数字javascript
- 字母数字 JavaScript 正则表达式失败
- 仅数字 Javascript 表单验证
- 如何从一组特定的数字中找到最接近的更高数字:javascript
- 将字符串 num 转换为数字 JavaScript
- 将字符串转换为数字 Javascript
- 提取两种模式之间的数字 javascript
- 添加两个十六进制数字 javascript 与位移
- 确定是否按下了字母或数字-Javascript
- 可以't将字符串转换为数字javascript我的代码出了什么问题
- 按布尔值,然后按数字(javascript)对对象数组进行排序
- 正则表达式,用于获取方括号之间的字符串和数字-javascript
- If和Else比较数字JavaScript
- 检查变量是网页上的所有数字javascript
- 同时检查模为0的两个不同数字(Javascript)