前端如何应对精确数字运算?用BigNumber.js解决JavaScript原生Number类型在处理大数或高精度计算时的局限性
目录
前端如何应对精确数字运算?用BigNumber.js解决JavaScript原生Number类型在处理大数或高精度计算时的局限性
一、BigNumber.js介绍
1、什么是 BigNumber.js?
2、作用领域
3、核心特性
二、安装配置与基础用法
1、引入 BigNumber.js
2、配置 BigNumber.js
3、常用方法
①创建 BigNumber 实例
②基本运算
③幂运算
④绝对值
⑤舍入
⑥比较
⑦格式化输出
⑧链式调用
三、核心特性
1、大数精度丢失问题
2、小数运算精度问题
3、大数乘除法精度问题
四、总结
作者:watermelo37
CSDN万粉博主、华为云云享专家、阿里云专家博主、腾讯云、支付宝合作作者,全平台博客昵称watermelo37。
一个假装是giser的coder,做不只专注于业务逻辑的前端工程师,Java、Docker、Python、LLM均有涉猎。
---------------------------------------------------------------------
温柔地对待温柔的人,包容的三观就是最大的温柔。
---------------------------------------------------------------------
前端如何应对精确数字运算?用BigNumber.js解决JavaScript原生Number类型在处理大数或高精度计算时的局限性
一、BigNumber.js介绍
1、什么是 BigNumber.js?
BigNumber.js 是一个 JavaScript 库,用于处理高精度的数字运算。它解决了 JavaScript 原生 Number 类型在处理大数或高精度计算时的局限性。由于 JavaScript 的 Number 类型基于 IEEE 754 标准(双精度浮点数),其精度限制为 53 位有效数字,因此在处理大数或需要高精度的场景下容易出现精度丢失的问题。
BigNumber.js专注于十进制精度运算,内部使用字符串进行十进制模拟,完全避免了 JS 的二进制浮点误差。默认不会丢失精度,也不会四舍五入除非你手动指定。在很多真实应用场景中(如金融、金额、电商)至关重要。
// 精度计算问题
console.log(0.1+0.2); // 0.30000000000000004
// 大数比较问题,超过2^53 - 1 = 9007199254740991的数字会丢失精度
console.log(15615616981519815 === 15615616981519816)
2、作用领域
BigNumber.js 的主要作用领域包括但不限于以下场景:
- 金融计算:贷款利息计算、汇率转换、交易金额处理等。
- 科学计算:天文学中的距离计算、化学中的分子量计算等。
- 区块链与加密货币:比特币、以太坊等加密货币的交易金额等。
- 数据统计与分析:统计报表、数据分析工具等。
- 其他高精度需求场景:游戏开发中的经济系统(虚拟货币)、电子商务中的价格计算等。
3、核心特性
BigNumber.js 的核心特性使其成为处理高精度数字的理想选择:能支持任意精度;每次操作都会返回一个新的BigNumber对象,不修改原始对象;支持丰富的数学运算;支持多种格式化输出方式;配置灵活且跨平台兼容。
二、安装配置与基础用法
1、引入 BigNumber.js
通过npm安装:
npm install bignumber.js
然后在代码中引入:
const BigNumber = require('bignumber.js');
// 或者(ES6 模块语法)
import BigNumber from 'bignumber.js';
如果不想使用 npm,可以直接通过 CDN 在 HTML 文件中引入:
<script src="https://cdn.jsdelivr.net/npm/bignumber.js/bignumber.min.js"></script>
<script>// 使用全局变量 BigNumberconst num = new BigNumber('123456789.123456789');console.log(num.toString());
</script>
2、配置 BigNumber.js
BigNumber.js 提供了全局配置选项,可以设置默认精度、舍入模式等。这些配置对所有 BigNumber 实例生效。
BigNumber.config({DECIMAL_PLACES: 10, // 设置小数点后保留位数ROUNDING_MODE: BigNumber.ROUND_HALF_UP, // 四舍五入EXPONENTIAL_AT: [-15, 20], // 设置科学计数法的触发范围
});
- DECIMAL_PLACES:控制小数点后的保留位数。
- ROUNDING_MODE:定义舍入模式,支持以下选项:
- BigNumber.ROUND_UP:向上取整。
- BigNumber.ROUND_DOWN:向下取整。
- BigNumber.ROUND_HALF_UP:四舍五入。
- BigNumber.ROUND_HALF_DOWN:五舍六入。
- EXPONENTIAL_AT :设置科学计数法的触发范围。例如,[-15, 20] 表示当数字小于 1e-15 或大于 1e20 时,会自动转换为科学计数法。
你也可以在创建 BigNumber 实例时用局部配置代替全局配置:
const num = new BigNumber('1.23456789', { DECIMAL_PLACES: 5 });
console.log(num.toString()); // 输出:1.23457
3、常用方法
以下是一些常用的 BigNumber.js 方法及其用途:
①创建 BigNumber 实例
const num = new BigNumber('123456789.123456789');
console.log(num.toString()); // 输出:123456789.123456789
②基本运算
BigNumber.js 支持加法、减法、乘法、除法、取模等操作。
const a = new BigNumber('10');
const b = new BigNumber('3');console.log(a.plus(b).toString()); // 加法:13
console.log(a.minus(b).toString()); // 减法:7
console.log(a.times(b).toString()); // 乘法:30
console.log(a.div(b).toString()); // 除法:3.3333333333333333333
console.log(a.mod(b).toString()); // 取模:1
③幂运算
const num = new BigNumber('2');
console.log(num.pow(10).toString()); // 幂运算:1024
④绝对值
const num = new BigNumber('-123.45');
console.log(num.abs().toString()); // 绝对值:123.45
⑤舍入
const num = new BigNumber('1.23456789');console.log(num.toFixed(2, BigNumber.ROUND_UP)); // 向上取整:1.24
console.log(num.toFixed(2, BigNumber.ROUND_DOWN)); // 向下取整:1.23
console.log(num.toFixed(2, BigNumber.ROUND_HALF_UP)); // 四舍五入:1.23
⑥比较
const a = new BigNumber('10');
const b = new BigNumber('20');console.log(a.comparedTo(b)); // 比较:-1(a < b)
console.log(a.isEqualTo(b)); // 判断是否相等:false
console.log(a.isGreaterThan(b)); // 判断是否大于:false
console.log(a.isLessThan(b)); // 判断是否小于:true
⑦格式化输出
const num = new BigNumber('123456789.123456789');console.log(num.toString()); // 默认格式:123456789.123456789
console.log(num.toFormat(2)); // 格式化为两位小数:123,456,789.12
console.log(num.toExponential(2)); // 科学计数法:1.23e+8
⑧链式调用
const result = new BigNumber('10').plus('5') // 10 + 5 = 15.times('2') // 15 * 2 = 30.div('3') // 30 / 3 = 10.pow('2'); // 10^2 = 100console.log(result.toString()); // 输出:100
三、核心特性
1、大数精度丢失问题
JavaScript 原生 Number 类型在处理非常大的数字或小数时会出现精度丢失,而 BigNumber.js 能确保任意精度。
// 原生 JavaScript
console.log(9007199254740992 === 9007199254740993); // 输出:true(错误)// 使用 BigNumber.js
const BigNumber = require('bignumber.js');const num1 = new BigNumber('9007199254740992');
const num2 = new BigNumber('9007199254740993');
console.log(num1.eq(num2)); // 输出:false(正确)
2、小数运算精度问题
原生 JavaScript 在处理小数运算时可能会出现浮点数精度误差,而 BigNumber.js 能确保精确结果。
// 原生 JavaScript
console.log(0.1 + 0.2); // 输出:0.30000000000000004(错误)// 使用 BigNumber.js
const BigNumber = require('bignumber.js');const num1 = new BigNumber('0.1');
const num2 = new BigNumber('0.2');
console.log(num1.plus(num2).toString()); // 输出:0.3(正确)
3、大数乘除法精度问题
原生 JavaScript 在处理大数乘/除法时可能会丢失精度,而 BigNumber.js 能确保精确结果。
// 原生 JavaScript
const weiAmount = 1000000000000000001; // 1 ETH + 1 wei
const ethAmount = weiAmount / 1000000000000000000;
console.log(ethAmount); // 输出:1.0000000000000002(错误)// 使用 BigNumber.js
const BigNumber = require('bignumber.js');
const weiAmount = new BigNumber('1000000000000000001'); // 1 ETH + 1 wei
const ethAmount = weiAmount.div(new BigNumber('1000000000000000000'));
console.log(ethAmount.toString()); // 输出:1.000000000000000001(正确)
四、总结
BigNumber.js 是为了解决 JS 在处理“十进制小数”时精度丢失的问题而生的。相比之下,其他库要么功能更复杂(decimal.js)、要么精度控制不默认(math.js)、要么只处理整数(BigInt)。
只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
其他热门文章,请关注:
极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图
你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解
DeepSeek:全栈开发者视角下的AI革命者
通过array.filter()实现数组的数据筛选、数据清洗和链式调用
通过Array.sort() 实现多字段排序、排序稳定性、随机排序洗牌算法、优化排序性能
TreeSize:免费的磁盘清理与管理神器,解决C盘爆满的燃眉之急
通过MongoDB Atlas 实现语义搜索与 RAG——迈向AI的搜索机制
深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
el-table实现动态数据的实时排序,一篇文章讲清楚elementui的表格排序功能
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、DOM操作等
前端实战:基于Vue3与免费满血版DeepSeek实现无限滚动+懒加载+瀑布流模块及优化策略
高效工作流:用Mermaid绘制你的专属流程图;如何在Vue3中导入mermaid绘制流程图
干货含源码!如何用Java后端操作Docker(命令行篇)
在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
Dockerfile全面指南:从基础到进阶,掌握容器化构建的核心工具
相关文章:
前端如何应对精确数字运算?用BigNumber.js解决JavaScript原生Number类型在处理大数或高精度计算时的局限性
目录 前端如何应对精确数字运算?用BigNumber.js解决JavaScript原生Number类型在处理大数或高精度计算时的局限性 一、BigNumber.js介绍 1、什么是 BigNumber.js? 2、作用领域 3、核心特性 二、安装配置与基础用法 1、引入 BigNumber.js 2、配置 …...
多目应用:三目相机在汽车智能驾驶领域的应用与技术创新
随着汽车智能驾驶技术不断完善,智能汽车也不断加速向全民普惠迈进,其中智驾“眼睛”三目视觉方案凭借低成本、高精度、强适配性成为众多汽车品牌关注的焦点。三目相机在汽车智能驾驶领域的创新应用,主要依托其多视角覆盖、高动态范围…...
webpack重构优化
好的,以下是一个关于如何通过重构 Webpack 构建策略来优化性能的示例。这个过程包括分析现有构建策略的问题、优化策略的制定以及具体的代码实现。 --- ### 项目背景 在参与公司的性能专项优化过程中,我发现现有的 Webpack 构建策略存在一些问题&#…...
MySQL 8.0 OCP(1Z0-908)英文题库(31-40)
目录 第31题题目分析正确答案 第32题题目分析正确答案 第33题题目分析正确答案: 第34题题目解析正确答案 第35题题目分析正确答案 第36题题目分析正确答案 第37题题目分析正确答案 第38题题目分析正确答案 第39题题目分析正确答案 第40题题目分析正确答案 第31题 Y…...
aardio - 虚表 —— vlistEx.listbar2 多层菜单演示
在 近我者赤 修改版的基础上,做了些许优化。 请升级到最新版本。 import win.ui; import godking.vlistEx.listbar2; import fonts.fontAwesome; /*DSG{{*/ mainForm win.form(text"多层折叠菜单";right1233;bottom713) mainForm.add({ custom{cls"…...
22.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--增加公共代码
在拆分服务之前,我们需要先提取一些公共代码。本篇将重点新增日志记录、异常处理以及Redis的通用代码。这些组件将被整合到一个共享类库中,便于在微服务架构中高效复用。 Tip:在后续的教程中我们会穿插多篇提取公共代码的文章,帮助…...
EasyOps®5月热力焕新:三大核心模块重构效能边界
在应用系统管理中,我们将管理对象从「服务实例」优化为「部署实例」,这一改变旨在提升管理效率与数据展示清晰度。 此前,系统以 “IP Port” 组合定义服务实例。当同一 IP 下启用多个进程或端口时,会产生多个服务实例。比如一台…...
基于深度学习的工业OCR数字识别系统架构解析
一、项目场景 春晖数字识别视觉检测系统专注于工业自动化生产监控、设备运行数据记录等关键领域。系统通过高精度OCR算法,能够实时识别设备上显示的关键数据(如温度、压力、计数等),并定时存储至Excel文件中。这些数据对于生产过…...
R语言绘图 | 渐变火山图
客户要求绘制类似文章中的这种颜色渐变火山图,感觉挺好看的。网上找了一圈,发现有别人已经实现的类似代码,拿来修改后即可使用,这里做下记录,以便后期查找。 简单实现 library(tidyverse)library(ggrepel)library(ggf…...
Go语言——docker-compose部署etcd以及go使用其服务注册
一、docker-compsoe.yml文件如下 version: "3.5"services:etcd:hostname: etcdimage: bitnami/etcd:latestdeploy:replicas: 1restart_policy:condition: on-failureprivileged: truevolumes:# 持久化 etcd 数据到宿主机- "/app/apisix/etcd/data:/bitnami/etc…...
Tomcat的调优
目录 一. JVM 1.1 JVM的组成 1.2 运行时数据区域的组成 二. 垃圾回收 2.1 如何确认垃圾 1. 引用计数法 2. 根搜索算法 2.2 垃圾回收基本算法 1. 标记-清除算法(Mark-Sweep) 2. 标记-压缩算法(Mark-Compact) 3. 复制算法…...
Tomcat和Nginx的主要区别
1、功能定位 Nginx:核心是高并发HTTP服务器和反向代理服务器,擅长处理静态资源(如HTML、图片)和负载均衡。Tomcat:是Java应用服务器,主要用于运行动态内容(如JSP、Servlet)…...
Python训练营打卡——DAY24(2025.5.13)
目录 一、元组 1. 通俗解释 2. 元组的特点 3. 元组的创建 4. 元组的常见用法 二、可迭代对象 1. 定义 2. 示例 3. 通俗解释 三、OS 模块 1. 通俗解释 2. 目录树 四、作业 1. 准备工作 2. 实战代码示例 3. 重要概念解析 一、元组 是什么:一种…...
【TDengine源码阅读】DLL_EXPORT
2025年5月13日,周二清晨 #ifdef WINDOWS #define DLL_EXPORT __declspec(dllexport) #else #define DLL_EXPORT #endif为啥Linux和MacOS平台时宏为空,难道Linux和mac不用定义导出函数吗? 这段代码是一个跨平台的宏定义,用于处理不…...
电子科技浪潮下的华秋电子:慕尼黑上海电子展精彩回顾
为期3天的2025慕尼黑上海电子展(electronica China 2025)于17日在上海新国际博览中心落下帷幕。 展会那规模,真不是吹的!本届展会汇聚了1,794家国内外行业知名品牌企业的展商来 “摆摊”,展览面积大得像个超级大迷宫&…...
TDengine编译成功后的bin目录下的文件的作用
2025年5月13日,周二清晨 以下是TDengine工具集中各工具的功能说明: 核心工具 taosd • TDengine的核心服务进程,负责数据存储、查询和集群管理。 taos • 命令行客户端工具,用于连接TDengine服务器并执行SQL操作。 taosBenchma…...
spark sql基本操作
Spark SQL 是 Apache Spark 的一个模块,用于处理结构化数据。它允许用户使用标准的 SQL 语法来查询数据,并且可以无缝地与 Spark 的其他功能(如 DataFrame、Dataset 和 RDD)结合使用。以下是 Spark SQL 的基本使用方法和一些常见操…...
采购流程规范化如何实现?日事清流程自动化助力需求、采购、财务高效协作
采购审批流程全靠人推进,内耗严重,效率低下? 花重金上了OA,结果功能有局限、不灵活? 问题出在哪里?是我们的要求太多、太苛刻吗?NO! 流程名称: 采购审批管理 流程功能…...
影刀RPA开发-CSS选择器介绍
影刀RPA网页自动化开发,很多时候需要我们查看页面源码,查找相关的元素属性,这就需要我们有必要了解CSS选择器。本文做了些简单的介绍。希望对大家有帮助! 1. CSS选择器概述 1.1 定义与作用 CSS选择器是CSS(层叠样式…...
DeepSeek、B(不是百度)AT、科大讯飞靠什么坐上中国Ai牌桌?
在国产AI舞台上,DeepSeek、阿里、字节、腾讯、讯飞群雄逐鹿,好不热闹。 这场堪称“军备竞赛”的激烈角逐,绝非简单的市场竞争,而是一场关乎技术、创新与未来布局的深度博弈。在竞赛中,五大模型各显神通,以…...
MySQL全局优化
目录 1 硬件层面优化 1.1 CPU优化 1.2 内存优化 1.3 存储优化 1.4 网络优化 2 系统配置优化 2.1 操作系统配置 2.2 MySQL服务配置 3 库表结构优化 4 SQL及索引优化 mysql可以从四个层面考虑优化,分别是 硬件系统配置库表结构SQL及索引 从成本和优化效果来看…...
【github】主页显示star和fork
数据收集:定期(例如每天)获取你所有仓库的 Star 和 Fork 总数。数据存储:将收集到的数据(时间戳、总 Star 数、总 Fork 数)存储起来。图表生成:根据存储的数据生成变化曲线图(通常是…...
网站遭受扫描攻击,大量爬虫应对策略
网站的日志里突然有很多访问路径不存在的,有些ip地址也是国外的,而且访问是在深夜且次数非常频繁紧密。判定就是不怀好意的扫描网站寻找漏洞。也有些是爬虫,且是国外的爬虫,有的也是不知道的爬虫爬取网站。网站的真实流量不多&…...
【 Redis | 实战篇 秒杀实现 】
目录 前言: 1.全局ID生成器 2.秒杀优惠券 2.1.秒杀优惠券的基本实现 2.2.超卖问题 2.3.解决超卖问题的方案 2.4.基于乐观锁来解决超卖问题 3.秒杀一人一单 3.1.秒杀一人一单的基本实现 3.2.单机模式下的线程安全问题 3.3.集群模式下的线程安全问题 前言&…...
手搓传染病模型(SEIARW)
在传染病传播的研究中,水传播途径是一个重要的考量因素。SEAIRW 模型(易感者 S - 暴露者 E - 感染者 I - 无症状感染者 A - 康复者 R - 水中病原体 W)综合考虑了人与人接触传播以及水传播的双重机制,为分析此类传染病提供了全面的…...
【C++】深入理解 unordered 容器、布隆过滤器与分布式一致性哈希
【C】深入理解 unordered 容器、布隆过滤器与分布式一致性哈希 在日常开发中,无论是数据结构优化、缓存设计,还是分布式架构搭建,unordered_map、布隆过滤器和一致性哈希都是绕不开的关键工具。它们高效、轻量,在性能与扩展性方面…...
第五天——贪心算法——射气球
1.题目 有一些球形气球贴在一个表示 XY 平面的平坦墙壁上。气球用一个二维整数数组 points 表示,其中 points[i] [xstart, xend] 表示第 i 个气球的水平直径范围从 xstart 到 xend。你并不知道这些气球的具体 y 坐标。 可以从 x 轴上的不同位置垂直向上࿰…...
麦肯锡110页PPT企业组织效能提升调研与诊断分析指南
“战略清晰、团队拼命、资源充足,但业绩就是卡在瓶颈期上不去……”这是许多中国企业面临的真实困境。表面看似健康的企业,往往隐藏着“组织亚健康”问题——跨部门扯皮、人才流失、决策迟缓、市场反应滞后……麦肯锡最新研究揭示:组织健康度…...
BFS算法篇——从晨曦到星辰,BFS算法在多源最短路径问题中的诗意航行(上)
文章目录 引言一、多源BFS的概述二、应用场景三、算法步骤四、代码实现五、代码解释六、总结 引言 在浩渺的图论宇宙中,图的每一条边、每一个节点都是故事的组成部分。每当我们站在一个复杂的迷宫前,开始感受它的深邃时,我们往往不再局限于从…...
理解 C# 中的各类指针
前言 变量可以理解成是一块内存位置的别名,访问变量也就是访问对应内存中的数据。 指针是一种特殊的变量,它存储了一个内存地址,这个内存地址代表了另一块内存的位置。 指针指向的可以是一个变量、一个数组元素、一个对象实例、一块非托管内存…...
MySQL 事务(二)
文章目录 事务隔离性理论理解隔离性隔离级别 事务隔离级别的设置和查看事务隔离级别读未提交读提交(不可重复读) 事务隔离性理论 理解隔离性 MySQL服务可能会同时被多个客户端进程(线程)访问,访问的方式以事务方式进行一个事务可能由多条SQL…...
【HarmonyOS】ArkTS开发应用的横竖屏切换
文章目录 1、简介2、静态 — 横竖屏切换2.1、效果2.2、实现原理2.3、module.json5 源码 3、动态 — 横竖屏切换3.1、应用随系统旋转切换横竖屏3.2、setPreferredOrientation 原理配置3.3、锁定旋转的情况下,手动设置横屏状态 1、简介 在完成全屏网页嵌套应用开发后…...
Linux中find命令用法核心要点提炼
大家好,欢迎来到程序视点!我是你们的老朋友.小二! 以下是针对Linux中find命令用法的核心要点提炼: 基础语法结构 find [路径] [选项] [操作]路径:查找目录(.表当前目录,/表根目录)…...
专栏项目框架介绍
项目整体实现框图 如下图所示,是该项目的整体框图,项目的功能概括为:PC端下发数据文件,FPGA板卡接收数据文件,缓存至DDR中,待数据文件发送完毕,循环读取DDR有效写区域数据,将DDR数据…...
WSL 安装 Debian 12 后,Linux 如何安装 vim ?
在 WSL 的 Debian 12 中安装 Vim 非常简单,只需使用 apt 包管理器即可。以下是详细步骤: 1. 更新软件包列表 首先打开终端,确保系统包列表是最新的: sudo apt update2. 安装 Vim 直接通过 apt 安装 Vim: sudo apt …...
【SpringBoot】从零开始全面解析Spring MVC (一)
本篇博客给大家带来的是SpringBoot的知识点, 本篇是SpringBoot入门, 介绍Spring MVC相关知识. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子…...
C++—特殊类设计设计模式
目录 C—特殊类设计&设计模式1.设计模式2.特殊类设计2.1设计一个无法被拷贝的类2.2设计一个只能在堆上创建对象的类2.3设计一个只能在栈上创建对象的类2.4设计一个类,无法被继承2.5设计一个类。这个类只能创建一个对象【单例模式】2.5.1懒汉模式实现2.5.2饿汉模…...
初入OpenCV
OpenCV简介 OpenCV是一个开源的跨平台计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法。 应用场景: 目标识别:人脸、车辆、车牌、动物; 自动驾驶;医学影像分析; 视频内容理解分析ÿ…...
霍夫圆变换全面解析(OpenCV)
文章目录 一、霍夫圆变换基础1.1 霍夫圆变换概述1.2 圆的数学表达与参数化 二、霍夫圆变换算法实现2.1 标准霍夫圆变换算法流程2.2 参数空间的表示与优化 三、关键参数解析3.1 OpenCV中的HoughCircles参数3.2 参数调优策略 四、Python与OpenCV实现参考4.1 基本实现代码4.2 改进…...
互联网大厂Java求职面试:优惠券服务架构设计与AI增强实践-4
互联网大厂Java求职面试:优惠券服务架构设计与AI增强实践-4 场景设定 面试官:某互联网大厂技术总监,拥有超过10年大型互联网企业一线技术管理经验,擅长分布式架构、微服务治理、云原生等领域。 候选人:郑薪苦&#…...
项目中会出现的css样式
1.重复渐变边框 思路: 主要是用重复的背景渐变实现的 如图: <div class"card"><div class"container">全面收集中医癌毒临床医案,建立医案共享机制,构建癌毒病机知识图谱,便于医疗人…...
LeetCode[101]对称二叉树
思路: 对称二叉树是左右子树对称,而不是左右子树相等,所以假设一个树只有3个节点,那么判断这个数是否是对称二叉树,肯定是先判断左右两个树,然后再看根节点,这样递归顺序我们就确认了࿰…...
黑马k8s(四)
1.资源管理介绍 本章节主要介绍yaml语法和kubernetes的资源管理方式 2.YAML语言介绍 3.资源管理方式 命令式对象管理 dev下删除了pod,之后发现还有pod,把原来的pod删除了,重新启动了一个 命令式对象配置 声明式对象配置 命令式对象配置&…...
华为ensp实现跨vlan通信
要在网络拓扑中实现主机192.168.1.1、192.168.1.2和192.168.2.1之间的互相通信,需要正确配置交换机(S5700)和路由器(AR3260),以确保不同网段之间的通信(即VLAN间路由)。 网络拓扑分析…...
TCPIP详解 卷1协议 十 用户数据报协议和IP分片
10.1——用户数据报协议和 IP 分片 UDP是一种保留消息边界的简单的面向数据报的传输层协议。它不提供差错纠正、队列管理、重复消除、流量控制和拥塞控制。它提供差错检测,包含我们在传输层中碰到的第一个真实的端到端(end-to-end)校验和。这…...
Java笔记4
第一章 static关键字 2.1 概述 以前我们定义过如下类: public class Student {// 成员变量public String name;public char sex; // 男 女public int age;// 无参数构造方法public Student() {}// 有参数构造方法public Student(String a) {} }我们已经知道面向…...
Matlab 垂向七自由度轨道车辆开关型半主动控制
1、内容简介 Matlab 229-垂向七自由度轨道车辆开关型半主动控制 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...
Matlab 短时交通流预测AR模型
1、内容简介 Matlab 230-短时交通流预测AR模型 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略城市道路短时交通流预测.pdf...
MYSQL之表的约束
表中真正约束字段的是数据类型, 但是只有数据类型约束就很单一, 也需要有一些额外的约束, 从而更好的保证数据的合法性, 从业务逻辑角度保证数据的正确性. 比如有一个字段是email, 要求是唯一的. 为什么要有表的约束? 表的约束: 表中一定要有各种约束, 通过约束, 让我们未来…...
使用ACE-Step在本地生成AI音乐
使用ACE-Step v1-3.5B开源模型从文本提示、标签和歌词创建完整的AI生成歌曲 — 无需云服务,无需API,仅需您的GPU。 这是由ACE Studio和StepFun开发的开源音乐生成模型。 在对数据隐私和云服务依赖性日益增长的担忧时代,ACE-Step将强大的文本转音乐生成完全离线,使其成为A…...