JS 的数据精度问题, 当数值范围超过限制, 即会转换为科学计数法, 数据精度就会出现误差
算法:
- function bigNumberAdd(a,b) {
- var res = '', c = 0;// 进位值, 初始 c 值为 0
- a = a.split('');// 将数据拆分为数组
- b = b.split('');// 同上
- while (a.length || b.length || c) {// 遍历数据
- c += ~~a.pop() + ~~b.pop();// 进位值 c
- res = c % 10 + res;// 依次相加
- c = c> 9;// 若 c 大于 9,c 为 true, 下次循环中 true 转换为 1, 即有进位
- }
- return res.replace(/^0+/, '');// 返回值
- }
以上方法即可正确的实现大数据相加
bigNumberAdd('12478945645654','489789411231231523');// 调用
注意: 参数需传递字符串类型
来源: https://www.cnblogs.com/rouge-ya/p/9901550.html