`

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);
 }
分享到:
评论

相关推荐

    一位十进制数加减法运算

    一位十进制数加减法运算设计 本设计课程的主要目标是让学生通过电子电路设计和仿真软件的应用,培养综合运用电子技术专业知识与生产实际知识来分析和解决电子电路设计的能力。该设计课程包括了电子电路综合设计的...

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

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

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

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

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

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

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

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

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

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

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

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

    数电加减法运算

    【数电加减法运算】课程设计主要涵盖了数字电子技术基础中的加减法运算电路设计。设计目标是创建一个能够处理一位十进制并行加/减法的电路,允许输入被减数和减数,并能处理减数大于被减数的情况,负数可通过数码管...

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

    "定点加减法运算PPT学习教案" 本学习教案旨在引导学生学习定点加减法运算的基本...通过学习本教案,学生将掌握定点加减法运算的基本概念和运算规则,并了解溢出判断方法,以便更好地应用定点加减法运算在实际问题中。

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

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

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

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

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

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

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

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

    小数加减法试讲稿.doc

    总的来说,《小数加减法》的教学内容涵盖了小数加减法的计算规则、方法选择和实际应用,通过复习整数加减法的原理,自然过渡到小数领域,使学生能够灵活运用已有的知识解决新的问题,进一步发展他们的数学思维和解决...

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

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

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

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

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

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

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

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

Global site tag (gtag.js) - Google Analytics