`

js浮点数精确计算函数(加,减,乘,除)

 
阅读更多
 //浮点数加法运算
  function FloatAdd(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 FloatSub(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);
  }
  
  //浮点数乘法运算
  function FloatMul(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 FloatDiv(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 (r1/r2)*pow(10,t2-t1); 
	} 
 } 

分享到:
评论
1 楼 Foxswily 2011-03-10  
加法不完善某些情况还有错,行尾缺";"

被小孩拿来做项目,出了问题才查到是从这里copy的,赶紧留个言,别在随便拿去用了

相关推荐

    Javascript 浮点数精确计算

    总的来说,解决JavaScript中浮点数精确计算的问题需要理解浮点数的存储原理,选择合适的策略,以及可能借助外部库或自定义算法。通过`FloatCumulateV1.html`和`js`这两个文件,我们可以学习到一个具体的实现,这对于...

    js浮点数精确计算(加、减、乘、除)

    代码如下:<SPAN xss=removed>//说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。 //调用:accAdd(arg1,arg2) //返回值:arg1加上arg2的精确结果 ...

    js浮点数处理转精确值

    在实际开发中,有时会使用库或自定义函数来处理浮点数的精确计算。例如,可以使用`decimal.js`这样的库,它提供了一个完整的decimal数学环境,支持浮点数的精确运算。或者,可以编写自己的函数,比如实现一个四舍五...

    javaScript实现浮点数转十六进制字符

    JavaScript实现浮点数转十六进制字符的过程涉及到了浮点数的表示、IEEE 754标准、二进制与十六进制的转换等多个知识点。由于JavaScript直接使用浮点数转十六进制的功能实现并不直接,因此需要借助其他方法来实现。...

    JS浮点数字操作插件floatOPS.js

    在JavaScript编程中,...总结起来,floatOPS.js是一个专注于解决JavaScript中浮点数运算精度问题的插件,通过提供加减乘除四个方法,确保了在进行浮点数运算时的精度,对于需要精确计算的场景具有很高的实用价值。

    详解js加减乘除精确计算

    JavaScript中的加减乘除运算在处理浮点数时可能会出现精度丢失的问题,这是由于计算机内部存储和计算浮点数的方式导致的。...在遇到需要精确计算的JavaScript代码时,调用这些函数替代原生的加减乘除操作即可。

    js中小数运算(加、减、乘、除)的问题及一些数学函

    JS 中小数运算(加、减、乘、除)的问题及一些数学函数 JS 中小数运算(加、减、乘、除)的问题是指在JavaScript中对小数进行加、减、乘、除运算时可能遇到的精度问题。这种问题的产生是由于计算机对浮点数的存储...

    test_JS-数字精确计算_

    例如,`BigNumber`类在`bignumber.js`库中可以用来创建一个大数对象,并提供加、减、乘、除等方法,确保计算结果的精确性。 在给定的文件中,`index.js`可能包含了使用上述策略之一或多种实现的代码。例如,它可能...

    JavaScript 精确计算(2)

    在JavaScript编程语言中,精确计算是一项重要的需求,特别是在金融、科学计算或任何需要高精度数值操作的场景。由于JavaScript的内置Number类型使用浮点数表示,这可能导致在进行大数运算时出现微小的误差。标题...

    JavaScript解决浮点数计算不准确问题的方法分析

    在这个实现中,`toInteger`函数用于将浮点数转换为整数,`operation`函数执行加、减、乘、除操作。首先,将输入的浮点数转换为整数并记录倍数,然后根据操作符进行相应计算,最后将结果除以倍数恢复原值。 3. 使用...

    javascript 除法、乘法、加法精确计算

    javascript的除法、乘法、加法结果会有误差,在两个浮点数相除的时候会比较明显。自定义几个函数返回较为精确的除法结果。

    JS浮点数运算结果不精确的Bug解决

    JavaScript中的浮点数运算在某些情况下可能会导致不精确的结果,这是由于其内部处理机制和IEEE-754标准的特性所致。在JavaScript中,所有的数字都以Number类型存在,本质上是按照IEEE-754标准的双精度浮点数(double...

    javascript加减乘除的简洁实例_.docx

    在JavaScript中,进行基本的数学运算如加、减、乘、除是相当直观的,但当我们处理浮点数时,可能会遇到精度问题。这个文档提供了一些简洁的实例,通过自定义函数来解决浮点数计算时可能出现的精度丢失问题。 首先,...

    js 加减乘除

    ### JavaScript中的精确加减乘除实现 在JavaScript中进行数值计算时,经常会出现不精确的情况,尤其是涉及到小数运算时更为明显。这是因为JavaScript中的数字是以IEEE 754双精度浮点数(64位)格式存储的,这种格式...

    javascript加减乘除的简单实例.docx

    总结来说,这个实例提供了一套处理JavaScript中浮点数运算精度问题的解决方案,确保在进行加、减、乘、除运算时能得到精确的结果,尤其在涉及小数的场景下。通过自定义函数和扩展字符串类型,可以更方便地在代码中...

    js关于精确计算和数值格式化以及直接引js文件

    首先,关于精确计算,本文提供了一组封装好的加、减、乘、除函数,这些函数能够处理浮点数的运算问题,避免直接使用原生的JavaScript加减乘除运算符时出现的误差。 1. 加法函数Add:这个函数接受两个加数arg1和arg2...

    javascript解决小数的加减乘除精度丢失的方案

    在JavaScript开发中,处理小数加减乘除运算时经常会遇到精度丢失的问题。由于JavaScript中的数字是以IEEE 754标准的双精度64位浮点数来表示的,这就意味着它可以精确地表示的整数范围大约在-***到***之间。当超出这...

    详解JS-- 浮点数运算处理

    此外,文章中还提出了一种自定义的`JSMath`库,它封装了加、减、乘、除四个基本运算,确保每次运算前都先将浮点数转换为整数形式。`JSMath`库的代码如下: ```javascript (function() { var JSMath = function() {...

    js中浮点型运算BUG的解决方法说明.docx

    因此,当进行浮点数运算时,如加、减、乘、除,可能会出现看似不合理的结果。例如,`0.1 + 0.2 !== 0.3`,这是因为0.1和0.2在二进制下不能精确表示,导致相加后无法得到预期的0.3。 针对这个问题,开发者们通常会...

Global site tag (gtag.js) - Google Analytics