解决JS浮点数精度确实与大数溢出
import Big from ‘big.js’;import { z } from ‘zod’;// 定义参数校验规则// 兼容数字、合法的数字字符串如 ‘12.34’// 拒绝NaN, Infinity, 纯字母字符串, 对象, 数组等const NumberCoerceSchema z.union([z.number().finite(), // 必须是有限的数字z.string().regex(/^-?\d(.\d)?$/, “无效的数字格式”) // 必须是合法的数字字符串]).transform((val) new Big(val)); // 校验通过后直接转换为 Big 对象/**加法函数param {number|string} a - 加数 A (默认 0)param {number|string} b - 加数 B (默认 0)returns {string} 以字符串形式返回精确结果避免大数失真*/function ultimateSum(a 0, b 0) {try {// 运行时强校验并解析const bigA NumberCoerceSchema.parse(a);const bigB NumberCoerceSchema.parse(b);// 使用 big.js 进行高精度加法return bigA.plus(bigB).toString();} catch (error) {if (error instanceof z.ZodError) {// 结构化抛出异常方便前端输入框或日志捕获具体是哪个参数错了throw new TypeError(参数校验失败: ${JSON.stringify(error.format())});}throw error;}}// 测试用例 // 1. 浮点数高精度测试console.log(ultimateSum(0.1, 0.2)); // “0.3” (完美)console.log(ultimateSum(0.111, 0.222)); // “0.333”// 2. 字符串与数字混用console.log(ultimateSum(‘1.5’, 2.5)); // “4”// 3. 缺省值测试console.log(ultimateSum(5)); // “5”console.log(ultimateSum()); // “0”// 4. 超大数字测试超过 JS 安全整数限制console.log(ultimateSum(‘9007199254740991’, 1)); // “9007199254740992”// 错误拦截测试 (均会抛出语义明确的错误) // ultimateSum(1, NaN); // 报错: 参数校验失败 (finite 校验不通过)// ultimateSum(1, ‘abc’); // 报错: 参数校验失败 (regex 校验不通过)// ultimateSum(1, {}); // 报错: 参数校验失败 (类型不匹配)

相关新闻

如何零成本解锁Wand专业版功能?开源增强工具为你提供完美解决方案

如何零成本解锁Wand专业版功能?开源增强工具为你提供完美解决方案

如何零成本解锁Wand专业版功能?开源增强工具为你提供完美解决方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为游戏修改工具Wand&a…

2026/6/25 13:45:34阅读更多 →
C++:switch

C++:switch

一、switch是什么 switch 也是分支判断语句,适合固定整数/字符多分支选择,比多层if else if代码更整齐,常用于菜单、等级判断。 语法格式: switch(表达式) { case 常量1: 语句; break; case 常量2: 语句; break; default: 都不匹配…

2026/6/25 13:23:45阅读更多 →
工业品短视频推广/必打标+必触达+必搜到,工业品短视频推广整套降本打法

工业品短视频推广/必打标+必触达+必搜到,工业品短视频推广整套降本打法

工业品短视频推广/必打标必触达必搜到,工业品短视频推广整套降本打法你有没有遇到过这种情况?短视频拍了不少,广告也投了,但询盘就是起不来。要么来的全是无效客资,电话打不通,用户说没咨询过。要么播放量不…

2026/6/24 10:39:24阅读更多 →
3大技术突破:Ventoy如何重新定义多系统启动U盘架构

3大技术突破:Ventoy如何重新定义多系统启动U盘架构

3大技术突破:Ventoy如何重新定义多系统启动U盘架构 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy Ventoy是一款革命性的开源启动盘解决方案,通过创新的文件系统挂载技术和动态…

2026/6/25 14:39:08阅读更多 →
LinkSwift网盘直链助手:告别限速烦恼的5个实战秘籍

LinkSwift网盘直链助手:告别限速烦恼的5个实战秘籍

LinkSwift网盘直链助手:告别限速烦恼的5个实战秘籍 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…

2026/6/25 14:39:08阅读更多 →
STM32-S345-双轴追光+太阳能+锂电池电压+电量+充电电压+4光敏+2电机+OLED屏+手动自动+升压+按键+(无线方式选择)-3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)

STM32-S345-双轴追光+太阳能+锂电池电压+电量+充电电压+4光敏+2电机+OLED屏+手动自动+升压+按键+(无线方式选择)-3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)

STM32-S345-双轴追光太阳能锂电池电压电量充电电压4光敏2电机OLED屏手动自动升压按键(无线方式选择)-3(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 产品功能描述: 本系统由STM32F103C8T6单片机核心板、OLED屏、…

2026/6/25 14:39:08阅读更多 →
注塑模与冲压模

注塑模与冲压模

注塑模注塑模是做塑料件的印模原理是把塑料颗粒加热成液态,注射进模具的闭合空腔里,冷却后打开模具,就得到一个塑料件就像做冰棍的模具,把糖水倒进去,冻硬了拿出来,形状就固定了做立体、复杂的塑料件&#…

2026/6/25 14:39:08阅读更多 →
小红书广告视频记录

小红书广告视频记录

https://www.bilibili.com/video/BV16G411V7ds 我觉得: 他基本思路就是以情动人。他基本告诉你他可以记录美好生活。就是这么简单的述求。

2026/6/25 14:39:08阅读更多 →
从HDMI规范看HDMI接口电路设计

从HDMI规范看HDMI接口电路设计

HDMI规范概述• TMDS Transition Minimized Different Signal 3路数据通道、1路时钟通道 • TMDS Character A 10bit TMDS-encode value 1个TMDS Clock周期传输1个Character • Tbit Time duration of a single bit carried across the TMDS data channels • Tcharacter Time …

2026/6/25 14:28:14阅读更多 →
【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体

【人工智能】一文搞定到底什么是智能体 一文搞定到底什么是智能体【人工智能】一文搞定到底什么是智能体一. LM,WorkFlow,Agent分别有什么么不同二. Agent的思考过程是怎样的三. Agent的五个核心部分1)LLM2)Prompt3)Me…

2026/6/25 9:39:54阅读更多 →
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用

1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…

2026/6/25 2:52:24阅读更多 →
Google AI Studio 300美元额度的真相与实战指南

Google AI Studio 300美元额度的真相与实战指南

1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…

2026/6/25 9:01:34阅读更多 →
面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo

面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo

上半年跳槽,面了十几家公司。说句实话,不是能力不行,是面试现场太容易崩了。 明明准备了一周,面试官换个问法脑子就一片白。面完之后那个懊悔——其实我会的。 后来开始试市面上的AI面试辅助工具。前前后后装了5款,踩…

2026/6/25 11:52:11阅读更多 →
Claude Code 提示词设计:从塑造“人格”到建立“状态机”

Claude Code 提示词设计:从塑造“人格”到建立“状态机”

当前 AI Agent 设计的核心痛点在于:大模型不缺写代码的能力,缺的是克制力、边界感和验证逻辑。Prompt 不再是用来塑造“人格”的,而是用来建立“状态机(State Machine)”和“行为门禁(Guardrails&#xff0…

2026/6/25 11:52:11阅读更多 →
MC-037 | 自定义 Skill 开发:创建你的AI能力模块

MC-037 | 自定义 Skill 开发:创建你的AI能力模块

MONKEYCODE 教程系列 MonkeyCode教程及推广系列 MC-037 自定义 Skill 开发:创建你的AI能力模块 >官网链接注册更放心哦https://monkeycode-ai.com/?ic019e0aed-c823-783c-b08a-4f030f891e4e 系列: 不爱土豆唯爱马铃薯 MonkeyCode 教程系列 字数: 约 1400 字…

2026/6/25 11:52:11阅读更多 →