前端数值精度丢失

news2025/1/24 5:55:14

精度丢失是一个常见的问题,特别是在涉及到浮点数计算时。

数值计算在前端开发中应用广泛,从简单的表单验证到复杂的数据可视化和动画效果的计算。然而,JavaScript(前端开发的主要编程语言)中的浮点数运算可能会导致精度丢失的问题,这是因为JavaScript遵循IEEE 754标准来表示浮点数,该标准使用二进制格式表示数值,而有些十进制小数无法精确地用二进制表示。

如下

let a=0.65

let b=3

console.log(a * b); //输出结果:1.9500000000000002

      let a=1.65;

      let b=3;

      console.log(a*b) //输出结果 : 4.949999999999999 

let a=0.3;

let b=0.1;

console.log(a - b) //输出结果 : 0.19999999999999998

解决方法1:

扩大倍数法:在进行计算之前,将浮点数乘以一个适当的倍数转换成整数,计算完成后再除回原来的倍数。

const result = ((a * 100) * (b * 100)) / 10000;

const result = ((a * 100)- (b * 100)) / 100;

其他代码: 小数点后面的零除掉,并且保留小数点后6位,

unifyNumber(num) {
      if (num === '') {
        return 0
      } else {
        let handleNum = parseFloat(num)
        let isToFixed = handleNum.toString().includes('.') && handleNum.toString().split('.')[1].length > 6
        if (isToFixed) {
          return handleNum.toFixed(6)
        }
          return handleNum
      }
    },

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2281248.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能体的核心技能之插件,插件详解和实例 ,扣子免费系列教程(11)

欢迎来到滔滔讲AI,今天我们来学习智能体的核心功能点之一的插件。 插件是通过API连接集成各种平台和服务,它扩展了智能体的能力。平台内置了丰富的插件,我们可以直接调用。 一、什么是插件 首先,插件其实就像一个工具箱。 每个插…

Spring Security(maven项目) 3.0.2.6版本—总

通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往复以至无穷&#xf…

超强推理大模型 QVQ-32B-preview 一键部署

QwQ-32B-Preview 是 Qwen 团队于 2024 年开发的实验研究模型,专注于提高 AI 推理能力。这个模型在多个基准测试中展现了卓越的性能,特别是在 GPQA、AIME、MATH-500 和 LiveCodeBench 等测试中,准确率分别达到了 65.2%、50.0%、90.6% 和 50.0%…

数据结构(Java)——二叉树

1.概念 二叉树是一种树形数据结构,其中每个节点最多有两个子节点,通常被称为左子节点和右子节点。二叉树可以是空的(即没有节点),或者由一个根节点以及零个或多个左子树和右子树组成,其中左子树和右子树也分…

谷粒商城——商品服务-三级分类

1.商品服务-三级分类 1.1三级分类介绍 1.2查询三级分类查询-递归树型结构数据获取 1.2.1导入数据pms_catelog.sql到数据表pms_category 1.2.2一次性查出所有分类及子分类 1.2.2.1修改CategoryController.java /*** 查出所有分类以及子分类,以树形结构组装起来*/R…

AviatorScript用法

AviatorScript的介绍,网上有很多,这里就不啰嗦了。这里介绍下传参的用法 应用场景:如果不想频繁的打包升级,而是想只更新某些规则脚本重启服务就可以升级的话,AviatorScript无疑是最佳选择。比如说,今天制…

云计算和服务器

一、云计算概述 ICT是世界电信协会在2001年的全球性会议上提出的综合性概念,ICT分为IT和CT,IT(information technology)信息技术,负责对数据生命周期的管理;CT(communication technology),负责数据的传输管理。 CT技术…

论文:深度可分离神经网络存内计算处理芯片

引言:SRAM - CIM芯片在处理深度可分离神经网络时面临的挑战 深度可分离卷积(Depthwise separable convolution, DSC)由逐深度卷积(DW)和逐点卷积(PW)组成,逐深度卷积用于提取空间特征&#xff…

代码随想录刷题day14(1)|(链表篇)142.环形链表 II

目录 一、链表理论基础 二、环形链表思路 1.如何判断有环? 2.如何找出环的入口? 3.其他疑问 三、相关算法题目 四、总结 一、链表理论基础 代码随想录 (programmercarl.com) 二、环形链表思路 1.如何判断有环? 使用快慢指针法&…

运算放大器应用电路设计笔记(六)

6.1输出失调电压发生的原因与计算 6.1.1用噪声增益进行评价 若运算放大器两个输入端接地,则理想运放输出为零,但实际的运放输出不为零,有一定的直流输出电压。这种直流电压称为输出失调电压。发生的原因是,运算放大器内部元件尤…

openresty(nginx)+lua+kafka实现日志搜集系统

今天我们来实现一下快捷的nginx日志搜集系统,主讲的是nginx服务里面的openresty的日志搜集。采用的手段是采用lua做中间桥梁。 一、安装openresty 具体安装步骤在这里《centos7 二进制安装openresty》 二、安装kafka 1、安装Java及配置Java 具体安装步骤在这里《采…

PortSwigger靶场练习---网页 LLM 攻击:间接提示注入

网页 LLM 攻击: Indirect prompt injection 间接提示注入 PortSwigger靶场地址: Dashboard | Web Security Academy - PortSwigger 题目: 官方提示: 发现攻击面 点击实时聊天以访问实验室的聊天功能。 询问LLM它有权访问哪些 AP…

【2024.12】西电英语听说雨课堂期末考试答案

前言 这次的英语听说1和2雨课堂期末是同一张卷子。 26-40为填空题,后面有些话太长了 37. when they are physicial active 38. people could need two times as much water as others do 39. why people have the idea that good health requires eight…

人声检测原理VAD

在机器人的研究中,机器人与人语音交互是一个重要的功能,在语音交互中,人声检测至关重要。不论是在手机中,还是在esp32芯片上,都需要一种简单快捷的方式来检测本地语音,滤掉杂音和噪音。 机器人启动后会一直…

2_高并发内存池_各层级的框架设计及ThreadCache(线程缓存)申请内存设计

一、高并发内存池框架设计 高并发池框架设计,特别是针对内存池的设计,需要充分考虑多线程环境下: 性能问题锁竞争问题内存碎片问题 高并发内存池的整体框架设计旨在提高内存的申请和释放效率,减少锁竞争和内存碎片。 高并发内存…

后端开发基础——JavaWeb(Servlet)

Servlet 关于系统架构 系统架构包括什么形式? C/S架构 B/S架构 C/S架构? Client / Server(客户端 / 服务器) C/S架构的软件或者说系统有哪些呢? QQ(先去腾讯官网下载一个QQ软件,几十MB&…

c++ 与 Matlab 程序的数据比对

文章目录 背景环境数据保存数据加载 背景 ***避免数据精度误差&#xff0c;快速对比变量 *** 环境 c下载 https://github.com/BlueBrain/HighFive 以及hdf5库 在vs 中配置库 数据保存 #include <highfive/highfive.hpp> using namespace HighFive;std::string fil…

Leecode刷题C语言之收集所有金币可获得的最大积分

执行结果:通过 执行用时和内存消耗如下&#xff1a; int dfs(int node, int parent, int f, int* coins, int k, int **children, int *childCount, int **memo) {if (memo[node][f] ! -1) {return memo[node][f];}int res0 (coins[node] >> f) - k;int res1 coins[no…

mybatis(57/134)

今天没什么想法&#xff0c;搭了个转账平台&#xff0c;加深了点之前javaweb的mvc架构的印象&#xff0c;还有异常的抛出处理等

ONNX 简介

ONNX &#xff08;Open Neural Network Exchange&#xff09;是一套表示深度神经网络模型的开放格式&#xff0c;由微软和 Facebook 于 2017 推出&#xff0c;然后迅速得到了各大厂商和框架的支持。目前&#xff0c;在数家机构的共同维护下&#xff0c;ONNX 已经对接了多种深度…