javascript - JavaScript中长数的计算
问题描述
如何将 1 与00112014000002000003300008 相加?添加1后我需要00112014000002000003300009 。
我正在尝试删除前两个零。我的代码如下
var lastrow = $('#lastrow');
var item_no = +lastrow.find('.item_no').text();
var item_no_to_increase = item_no.toString().substring(2);
console.log(item_no_to_increase);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="lastrow">
<p class="item_no">00112014000002000003300008</p>
</div>
我想在删除零后加 1。但我得到控制台输出12014000002e+23
解决方案
您从 DOM 中检索的值已经是一个字符串,但是您通过使用+
前面的+lastrow
. 摆脱它+
并抛弃.toString()
它item_no.toString().substring(2);
此外,JavaScript 中的最大数字是9007199254740991
. 因此,您必须对数字的一小部分进行一些加法,然后将其作为字符串重新加入。
这是一篇很棒的文章,展示了如何处理大数:
还有这个库可以为您完成所有繁重的工作:
https://github.com/niinpatel/addVeryLargeNumbers
基本示例
这个例子是一个非常基本的例子,如果你添加1
到9
.
var number = '00112014000002000003300008';
function incrementByOne(number) {
var start = number.slice(0, number.length -1);
var end = parseInt(number.slice(number.length -1));
end++;
console.log(start + end);
}
incrementByOne(number);
从 HTML 中获取数字(根据评论讨论)
var lastrow = $('#lastrow');
var item_no = lastrow.find('.item_no').text();
console.log(typeof item_no, item_no);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="lastrow">
<p class="item_no">00112014000002000003300008</p>
</div>
文档
推荐阅读
- java - JComponent:如何以最正确的方式进行重绘?
- android - GooglePay 不适用于 Braintree SDK
- java - 非抽象类中的抽象方法
- oracle - SQL 加载器正在加载不正确的值
- c++ - arm-none-eabi-g++ 系统包含路径
- python-3.x - 具有二维的 Numpy 数组索引
- python - python - 多个龙卷风客户端同时连接到龙卷风服务器
- c# - 如何使用列名字典来设置 DataTable 结构?
- matlab - Matlab中的Gurobi没有目标函数
- laravel - Laravel 分页显示“哎呀,看起来出了点问题。” 页