当前位置: 首页 > news >正文

【JS】不使用BigInt实现大整数相加

前言

JS中整数有存储范围,一旦超出这个范围则会丢失精度,通过MAX_SAFE_INTEGER可以看到JS中支持的最大的、安全的正整数为9007199254740991

在这里插入图片描述
在这里插入图片描述
JS新类型BigInt可以处理大整数运算,但这次不逃课,本文将尝试自行处理大整数相加,实际开发中还是更推荐直接使用BigInt

实现

接收两个可能为大整数的参数,求和。

为了确保不丢失精度,这里将参数和返回都设为字符串。思路同小学数学,相加进位。

function sum(a, b) {const len = Math.max(a.length, b.length)let result = ""a = a.padStart(len, "0") // 不足最高位补0b = b.padStart(len, "0") // 不足最高位补0let carry = 0 // 进位for (let i = len - 1; i >= 0; i--) {const n = +a[i] + +b[i] + carrycarry = Math.floor(n / 10)result = (n % 10) + result}if (carry) result = "1" + resultreturn result
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 视频智能分析平台烟火检测视频安防监控烟火算法识别应用方案
  • mbedTLS生成客户端,服务端密钥及CA证书
  • 文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《基于多时空尺度特性的风电场物理-数据融合动态等值建模》
  • Qt/QML学习-Slider
  • iOS 通知
  • 笔记:Echarts柱状图 实现滚轮条 数据太多
  • 使用 java 将 excel 文件转 html、pdf ,以及 pdf 合并和拆分
  • 使用Node-RED实现和部署物联网入侵检测的机器学习管道
  • C++基础语法:while的使用
  • 数据结构--树(笔记)
  • 2025计算机毕设:50条小众好做的SSM题目推荐【计算机毕设选题推荐】
  • 服务器配置miniconda环境
  • npm install 安装报错解决指南
  • 什么是BOM,有哪些分类?
  • Notion使用详解
  • ES6指北【2】—— 箭头函数
  • [nginx文档翻译系列] 控制nginx
  • 【知识碎片】第三方登录弹窗效果
  • mockjs让前端开发独立于后端
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • React-redux的原理以及使用
  • 闭包--闭包作用之保存(一)
  • 初识 webpack
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 你真的知道 == 和 equals 的区别吗?
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​你们这样子,耽误我的工作进度怎么办?
  • ######## golang各章节终篇索引 ########
  • #etcd#安装时出错
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • $jQuery 重写Alert样式方法
  • (19)夹钳(用于送货)
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (C语言)fread与fwrite详解
  • (day18) leetcode 204.计数质数
  • (Java数据结构)ArrayList
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • .Net 4.0并行库实用性演练
  • .NET BackgroundWorker
  • .net core使用EPPlus设置Excel的页眉和页脚
  • .Net IOC框架入门之一 Unity
  • .net 简单实现MD5
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .net 验证控件和javaScript的冲突问题
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .Net(C#)常用转换byte转uint32、byte转float等
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET开源、简单、实用的数据库文档生成工具
  • .Net下的签名与混淆
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600