首页 > 其他分享 >消除js计算误差,消除使用减号“-”或加号“+”的计算误差

消除js计算误差,消除使用减号“-”或加号“+”的计算误差

时间:2024-03-06 18:14:59浏览次数:25  
标签:reduce js add 计算误差 减号 100 nonstandard 消除

做条形图统计计算时,往往js计算“-”后再无法相“+”等于100%或者说等于1,后来发现是js使用减号“-”或加号“+”计算有误差

相关代码:

this.standard = 99.68
this.nonstandard = 100 - this.standard
console.info("this.nonstandard:",this.nonstandard)
//进一法 this.nonstandard = ((this.nonstandard * 100) | 0) / 100
console.info(" 进一法 this.nonstandard:",this.nonstandard)
控制台打印:
this.nonstandard 0.3199999999999932
进一法 this.nonstandard 0.31 //之前出错时0.33,现在想复现之前的问题又出现0.31,总之standard变量存的数和nonstandard变量存的数合计不等100

 

正确处理方式:

add、reduce是传入的加减数字,reduce是被加数(被减数),s是加减符号

formatNum(add, reduce, s, num) {
  let m = Math.pow(10, num); //num是10的次幂
  let res = s == '+' ? (add * m + reduce * m) / m : (add * m - reduce * m) / m;
  return Math.round(res * m) / m;
}

浮点数计算的时候,很多时候产生的都是这种极限数据,如果要精确进行整数转换,要放大的倍数够大

调用此函数即可计算出正确结果

this.standard=99.68
this.nonstandard = this.formatNum(100, this.standard, '-', 2) console.info('========this.nonstandard', this.nonstandard)


控制台打印: ========this.nonstandard 0.32

正确展示:

 

标签:reduce,js,add,计算误差,减号,100,nonstandard,消除
From: https://www.cnblogs.com/jx0214/p/18057228

相关文章

  • overflow:hidden如何消除浮动的
     当一个元素被浮动(float)时,它会脱离正常的文档流,可能导致其父容器无法正确地计算高度,从而影响布局。使用overflow:hidden;时,它会创建一个块级格式化上下文(BlockFormattingContext,BFC),这会导致父容器包裹浮动元素,而不再受到浮动元素的影响。具体步骤是这样的:当一个元素的......
  • 如何消除原生Android网络状态上的惊叹号
    喜欢使用原生Android系统的朋友可能会发现自己的状态栏信号图标上经常有一个惊叹号标志。这是怎么回事呢?原因是Android为了对网络状态进行检测,采用了一种叫做captivedetection的方式进行网络状态检测。其实说起来很简单,每当连接到一个网络,比如移动数据网络或者WIFI的时候,Androi......
  • 【译】算法 vs 人工智能 vs 通用人工智能:为初学者消除误区
    原作:普利瑟姆在计算机科学和人工智能领域,理解从传统算法(Algorithms)到人工智能(AI:ArtificialIntelligence)再到通用人工智能(AGI:ArtificialGeneralIntelligence)的演变至关重要。在这篇综合指南中,我深入研究这些技术的复杂性,通过识别猫的任务来说明每个阶段的关键差异和进步。我......
  • Jenkins超全安装,自动化部署SSM项目,消除你的部署烦恼
    Jenkins超全安装,自动化部署SSM项目,消除你的部署烦恼:https://blog.csdn.net/m0_54349490/article/details/130268867?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170683971316800188582910%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request......
  • 面试官:什么是JIT、逃逸分析、锁消除、栈上分配和标量替换?
    JIT、逃逸分析、锁消除、栈上分配和标量替换等都属于JVM的优化手段,JVM优化手段是指在运行Java程序时,通过对字节码的编译和执行过程进行优化,以提升程序的性能和效率。JVM优化手段主要有以下几个:JIT(Just-In-Time,即时编译):是一种在程序运行时将部分热点代码编译成机器代码的......
  • 使用display:inline-block实现类grid布局时,元素的上下左右之间多了无法消除的间隔,去除
    错误如图 元素左右间隔,上下间隔,都不是手动设置的,布局换行之后自动出现的。 清除上下间隔方法。给每个div设置vertical-align:bottom/top;如果是下边距,就设置为bottom,上边距,就设置为top 清除左右间隔方法。没有尝试,但是网上搜的方法是,给父元素设置font-size:......
  • 【快速阅读三】使用泊松融合实现单幅图的无缝拼贴及消除两幅图片直接的拼接缝隙。
    泊松融合还可以创建一些很有意思的图片,比如一张图片任意规格平铺,使用泊松融合后,平铺的边界处过渡的很自然,另外,对于两张图片,由于局部亮度等等的影响,导致拼接在一起时不自然,也可以使用泊松融合予以解决。在【快速阅读二】从OpenCv的代码中扣取泊松融合算......
  • 如何利用隐私计算技术消除贫困?
    PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。贫困是全世界都在面对的一个终极问题,每个国家都有自己的政策,也有自己的创新和尝试,本文将通过荷兰的尝试,来看看隐私计算技术在其中如何发挥作用......
  • 优雅的消除if..else,这1条锦囊妙计千万别错过!!
    首先来看一个demo!!publicinterfaceIPay{voidpay();}@ServicepublicclassAliaPayimplementsIPay{@Overridepublicvoidpay(){System.out.println("===发起支付宝支付===");}}@ServicepublicclassWeixinPayim......
  • ai 图片消除工具, lama-cleaner,安装
    如何使用这是一款开源工具,访问以下网页可供体验。https://huggingface.co/spaces/Sanster/Lama-Cleaner-lama如果你打不开上方的网址,可以尝试自行在电脑上部署。本机部署此功能安装python并确保python被加入到环境变量这一步不多讲解,关于python的安装网络上有特别多文字和......