网站首页 > 教程文章 正文
接受两个字符串,如果接受的是数字,需要将数字转为字符串,但有一个点需要注意,转换过程中,可能会带有e,如1.12e+21,即1.12 * 21个0,需要将1.12 * 2个0,然后padStart(21 - 2个0)。
let a = "9007199254740991";
let b = "1234567899999999999";
function add(a ,b){
//取两个数字的最大长度
let maxLength = Math.max(a.length, b.length);
//用0去补齐长度
a = a.padStart(maxLength , 0);//"0009007199254740991"
b = b.padStart(maxLength , 0);//"1234567899999999999"
//定义加法过程中需要用到的变量
let t = 0;
let f = 0; //"进位"
let sum = "";
for(let i=maxLength-1 ; i>=0 ; i--){
t = parseInt(a[i]) + parseInt(b[i]) + f;
f = Math.floor(t/10);
sum = t%10 + sum;
}
if(f == 1){
sum = "1" + sum;
}
return sum;
}
猜你喜欢
- 2025-07-23 效率提升,细数Win11体验不足与补救方法
- 2025-07-23 利用Cloudflare Worker部署免费的短链接平台
- 2025-07-23 JavaScript字符串操作方法大全,包含ES6方法
- 2025-07-23 ES6字符串的新特性及新增方法梳理
- 2025-07-23 AI 时代已来!不容忽视的 TypedArray 的底层力量?
- 2025-07-23 TS核心知识点总结及项目实战案例分析
- 2025-07-23 Javascript字符串的常用方法有哪些?
- 2025-07-23 鸿蒙HarmonyOS ArkTS视频播放器组件详解
- 2025-07-23 JavaScript中10个“过时”的API,你的代码里还在用吗?
- 2025-07-23 一个神奇的小工具,让URL地址都变成了"ooooooooo"
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)