`

js加减法运算出现很多小数位的问题

    博客分类:
  • JS
 
阅读更多

javascript(js)的小数点加减乘除问题,是一个js的bug如0.3*1 = 0.2999999999等,下面列出可以完美求出相应精度的四种js算法

 
//除法
   function accDiv(arg1,arg2){ 
  var t1=0,t2=0,r1,r2; 
  try{t1=arg1.toString().split(".")[1].length}catch(e){} 
  try{t2=arg2.toString().split(".")[1].length}catch(e){} 
  with(Math){ 
  r1=Number(arg1.toString().replace(".","")) 
  r2=Number(arg2.toString().replace(".",""))
  return accMul((r1/r2),pow(10,t2-t1)); 
  } 
  } 
   //乘法
   function accMul(arg1,arg2) 
   { 
   var m=0,s1=arg1.toString(),s2=arg2.toString(); 
   try{m+=s1.split(".")[1].length}catch(e){} 
   try{m+=s2.split(".")[1].length}catch(e){} 
   return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m) 
   } 
 //加法 
 function accAdd(arg1,arg2){ 
 var r1,r2,m; 
 try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0} 
 try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0} 
 m=Math.pow(10,Math.max(r1,r2)) 
 return (arg1*m+arg2*m)/m 
 } 
 //减法 
 function Subtr(arg1,arg2){
     var r1,r2,m,n;
     try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
     try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
     m=Math.pow(10,Math.max(r1,r2));
     n=(r1>=r2)?r1:r2;
     return ((arg1*m-arg2*m)/m).toFixed(n);
 }
分享到:
评论

相关推荐

    一位十进制数加减法运算

    加减法运算电路是实现数字运算的核心,它利用了四位二进制超前进位全加器74LS283N元器件和逻辑门(或门、与门)的组合,以实现对数字的加法和减法运算。 加减法的实现首先要求输入两个一位十进制数。在本设计中,两...

    JS小数加减乘除运算后位数增加的解决方案

    JS小数加减乘除运算后小数点后产生多位数和计算精度损失的解决方案

    加减法运算电路的设计方法

    在电子电路设计领域,加减法运算电路是一种基础且广泛应用的电路形式,主要用于处理输入信号的加法和减法运算。为了满足不同应用场景的需求,设计一个具有任意比例系数的加减法运算电路显得尤为重要。在此基础上,...

    加减法运算实验电路multisim源文件

    加减法运算电路在电子工程领域中是一种基本的逻辑设计,尤其在数字系统设计和计算机硬件教学中占有重要地位。Multisim是一款广泛使用的电路模拟软件,它为工程师和学生提供了一个直观的平台来设计、分析和测试电路,...

    数字电路课程设计之加减法运算电路设计

    本设计旨在构建一个能够处理4位并行加减法运算的电路,输入为一位十进制数,且在进行减法运算时,被减数需大于或等于减数。设计要求还包括使用LED灯组成的七段式数码管来显示输入数值和运算结果,以及通过按键控制...

    js小数运算出现多位小数如何解决

    在使用JavaScript进行小数运算时,特别是加、减、乘、除四种基本运算,经常会遇到结果出现过多的小数位数问题。具体来说,当两个小数进行运算时,结果往往不是精确值,而是由于浮点数精度问题或者二进制转换所导致的...

    基于QuartusII的16位补码加减法运算器

    在本文中,我们将深入探讨如何基于Quartus II软件实现一个16位补码加减法运算器。这个设计是计算机组成原理中的一个重要实践环节,它涵盖了数字逻辑、全加器电路以及补码运算的基本概念。 首先,让我们理解补码运算...

    数电加减法运算

    本次课程设计的目标是设计一个能处理一位十进制数并行加减法运算的电路。电路需能够接受用户输入的被减数与减数,并正确显示运算结果。对于减法操作中可能出现的负数结果,电路也应当能够通过数码管或类似显示器件...

    十进制加减法器数字电路课程设计

    十进制加减法器数字电路课程设计 ...通过设计和实现十进制加减法器数字电路,学生可以熟悉数字逻辑电路设计方法,掌握加减法器、编码器、译码显示的工作原理及特点,并提高勤奋认真、分析故障和解决问题的能力。

    小数加减法混合运算练习题集100道.doc

    小数加减法混合运算练习题集100道.doc

    一年级100以内加减混合运算练习600题-1年级加减法混合运算.pdf

    "一年级100以内加减混合运算练习600题-1年级加减法混合运算.pdf" 通过分析给定的文件信息,我们可以总结出以下知识点: 1. 加减混合运算:文件标题和描述中都提到了“加减混合运算”,表明该文件的主要内容是关于...

    js ,加法,减法,乘法,除法,小数点精确计算

    js ,加法,减法,乘法,除法,计算完之后,很多小数点,比如0.3 / 3 = 0.09999999999999999,尤其是在金钱方面万万不能四舍五入,加减乘除封装为方法,方便调用,完美解决

    小数加减法混合运算练习题100道.doc

    小数加减法混合运算练习题100道.doc

    定点加减法运算PPT学习教案.pptx

    它解决了原码在表示负数时的多个0的问题,并简化了加减法运算。在补码系统中: \[ [A+B]补=[A]补+[B]补 \] \[ [A-B]补=[A]补-[B]补 \] 补码运算中的溢出判断非常重要,需要采用特定的判断方法,如单符号法、进位...

    长整数加减法运算 双向链表

    在计算机科学中,长整数加减法运算和双向链表是两个重要的概念,它们在数据处理和算法设计中有着广泛的应用。本文将详细探讨这两个主题,并结合它们在实际问题中的应用,帮助读者深入理解其原理和实现方法。 首先,...

    小数加减法试讲稿.doc

    它不仅帮助孩子们巩固了加减法的基础,更带领他们进入了小数运算的世界,这是孩子们数学学习的必经之路。 课程伊始,教师便通过复习整数加减法,将孩子们带回到熟悉的数学基础上。加法和减法是数学中的基础运算,...

    三年级数学下册简单的小数加减法PPT课件.pptx

    小数加减法是小学数学中的重要概念,特别是在三年级下册的学习阶段。此PPT课件专注于教授孩子们如何处理简单的整数与小数的加减运算。以下是对这些知识点的详细说明: 1. **整数加减法的基本原则**: - 在计算整数...

    四年级数学下册二小数加减法2.1相同位数的小数加减法课时练北京版20200319233

    本课时的主题是“相同位数的小数加减法”,这是在学生掌握了整数运算的基础上,对数学技能的进一步扩展。下面我们将详细探讨这个知识点。 首先,我们要了解相同位数的小数加减法的基本规则。相同位数的小数指的是...

Global site tag (gtag.js) - Google Analytics