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

vue3中,如何解决数字精度问题(big.js的使用)

1.安装big.js

npm install big.js --save

2.引入使用

<script setup>
import { ref, computed } from 'vue';
import Big from 'big.js';const sum = Big(0.1).plus(0.2); // 加法
const diff = Big(100).minus(25.5); // 减法
const product = Big(19.9).times(100); // 乘法
const quotient = Big(3).div(1); // 除法
console.log(sum.toString()); // "0.3"
console.log(diff.toString()); // "74.5"
console.log(product.toString()); // "1990"
console.log(quotient.toString()); // "3"</script>

3.说明

(1)需要先将数字格式化Big格式,也就是Big(数字)

(2)加法:.plus(数字)、减法:.minus(数字)、乘法:.times(数字)、除法:.div(数字)

(3)计算完后需要转换成字符串类型(.toString())或者数字类型(.toNumber())

(4)保留2位小数.round(2)

4.示例

使用Big.js前

function handleLineLength(){lineDetail.value.lineLength = 0;lineSonList.value.forEach(item=>{lineDetail.value.lineLength+=Number(item.segmentLength.toFixed(2));})
}

使用Big.js后

import Big from 'big.js';function handleLineLength() {lineDetail.value.lineLength = Big(0); // 初始化为 Big 类型的 0lineSonList.value.forEach(item => {// 将每个 segmentLength 转换为 Big 类型,并保留两位小数const segmentLength = Big(item.segmentLength).round(2);lineDetail.value.lineLength = lineDetail.value.lineLength.plus(segmentLength);});// 将最终结果转换为数字类型lineDetail.value.lineLength = lineDetail.value.lineLength.toNumber();
}

http://www.dtcms.com/a/341275.html

相关文章:

  • 计算机毕设Spark项目实战:基于大数据技术的就业数据分析系统Django+Vue开发指南
  • SQL count(*)与 sum 区别
  • 【iOS】NSRunLoop
  • Preprocessing Model in MPC 2 - 背景、基础原语和Beaver三元组
  • 计算机网络--HTTP协议
  • Jenkins服务器配置SSH
  • 强制重启导致Ubuntu24.04LTS amd的WIFI无法使用的解决方案
  • 超长视频生成新突破!LongVie框架问世,创作不再受时长限制
  • spring第9课,spring对DAO的支持
  • C语言---编译的最小单位---令牌(Token)
  • 基于 Java 调用泛微 OA WebService 创建表单流程
  • 如何保障内部网络安全前提下,实现与外部互联网之间的文件传输?
  • 一种融合AI与OCR的施工许可证识别技术,提升工程监管效率,实现自动化、精准化处理。
  • 【CUDA编程】CUDA编程入门第一课
  • QT聊天项目DAY20
  • 【unitrix数间混合计算】3.3 无符号整数标记trait(bin_unsigned.rs)
  • C++:仿函数部分的补充、模版进阶(非类型模版参数、模板的特化、模板的分离编译)
  • 1277. 统计全为 1 的正方形子矩阵
  • 含钼溶液中回收钼
  • 【Windows】Windows平台基于加速地址安装vcpkg并集成到Visual Studio 2017
  • MySQL 50 道经典练习题及答案
  • 使用Jmeter轻松实现AES加密测试
  • 国电南自面试记录
  • 细说数仓中不同类型的维度
  • 实时交互世界模型新标杆! Skywork AI 发布 Matrix-Game 2.0: 攻克实时交互难题,在实时性与视频生成质量上实现跨越式突破!
  • synchronized锁,ReentrantLock 锁
  • 基于隐函数定理的偏导数计算及其C++实现
  • 批处理指令常见问题
  • 基于langchain重现agent调用llm和tools的过程
  • Angular入门教程