`

JavaScript 精确计算(1)

阅读更多
/**
*    在javascript中,乘法结果会有误差,特别在两个浮点数相乘的时候会比较明显。
* 这个函数返回较为精确的乘法结果。
* @author yukh
* @createTime 2009-8-27
*/
function numberMul(arg1,arg2){
var res = 0;
var s1 = arg1.toString();
var s2 = arg2.toString();
if(s1.indexOf(".") != -1)
  res += s1.split(".")[1].length;
if(s2.indexOf(".") != -1)
  res += s2.split(".")[1].length;
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,res);
}

/**
*    在javascript中,除法结果会有误差,特别在两个浮点数相除的时候会比较明显。
* 这个函数返回较为精确的除法结果。
* @author yukh
* @createTime 2009-8-27
*/
function numberDiv(arg1, arg2){
var t1=0,t2=0,r1,r2;
arg1 = arg1.toString();
arg2 = arg2.toString();
if(arg1.indexOf(".") != -1)
  t1 = arg1.split(".")[1].length;
if(arg2.indexOf(".") != -1)
  t2 = arg2.split(".")[1].length;
with(Math){
  if(arg2*pow(10,t2) == 0){
   alert("被除数不能为0!");
   return 0;
  }
        r1 = Number(arg1.replace(".",""))
        r2 = Number(arg2.replace(".",""))
        return (r1/r2)*pow(10,t2-t1);
    }
}

/**
*    在javascript中,加法结果会有误差,特别在两个浮点数相加的时候会比较明显。
* 这个函数返回较为精确的加法结果。
* @author yukh
* @createTime 2009-8-27
*/
function numberAdd(arg1, arg2){
    var r1 = 0,r2 = 0, m;
    arg1 = arg1.toString();
    arg2 = arg2.toString();
    if(arg1.indexOf(".") != -1)
     r1 = arg1.split(".")[1].length;
    if(arg2.indexOf(".") != -1)
  r2 = arg2.split(".")[1].length;
    m = Math.pow(10,Math.max(r1,r2))
    return (arg1*m + arg2*m)/m;
}

/**
*    在javascript中,减法结果会有误差,特别在两个浮点数相减的时候会比较明显。
* 这个函数返回较为精确的减法结果。
* @author yukh
* @createTime 2009-8-27
*/
function numMin(arg1, arg2){
  var r1=0, r2=0 , m;
  arg1 = arg1.toString(),arg2 = arg2.toString();
  if(arg1.indexOf(".") != -1)
   r1 = arg1.split(".")[1].length;
  if(arg2.indexOf(".") != -1)
   r2 = arg2.split(".")[1].length;
  m = Math.pow(10, Math.max(r1,r2));
  return (arg1*m - arg2*m)/m;
}
分享到:
评论

相关推荐

    JavaScript小数点精确计算

    JavaScript中的小数点精确计算是开发者经常会遇到的一个挑战。由于JavaScript内部使用的是IEEE 754标准来存储和处理浮点数,这可能导致在进行小数运算时出现精度丢失问题,尤其是在涉及大数字或者循环计算时。本篇将...

    JavaScript 精确计算(2)

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

    javascript精确计算日期处理金额格式化

    JavaScript原生提供了Date对象来处理日期,但其功能相对有限,因此开发者通常会利用各种库来增强其功能,以实现更精确的日期操作。在“JavaScript开发-日期处理库”的标签下,我们可以推断这是一个关于使用...

    Javascript 浮点数精确计算

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

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

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

    JavaScript天数计算

    如果需要获取服务器端的时间来进行更精确的计算,可以通过发送跨域请求来实现。 ```javascript if (window.ActiveXObject) { http_request = new ActiveXObject('Microsoft.XMLHTTP'); } else if (window....

    解决javascript中的浮点数计算不精确问题

    在JavaScript编程中,浮点数计算不精确是一个常见的问题,源于其内部的二进制浮点数表示方式。本文将深入探讨这个问题,并提供解决方案。首先,我们要理解为什么会出现这种不精确性。 JavaScript遵循IEEE 754标准来...

    test_JS-数字精确计算_

    在JavaScript编程语言中,数字的精确计算确实是一个挑战,尤其是涉及到浮点数操作时。由于JavaScript内部使用IEEE 754标准存储和处理浮点数,这可能导致精度损失,尤其是在进行加减乘除等数学运算时。标题"test_JS-...

    javascript精确到秒的时间控件

    综上所述,"javascript精确到秒的时间控件"涉及到了JavaScript基础、DOM操作、事件处理、时间格式化、前端UI设计以及浏览器兼容性等多个方面。开发这样一个控件不仅需要扎实的JavaScript编程技能,还需要对用户体验...

    javascript避免数字计算精度误差的方法详解.docx

    ### JavaScript避免数字计算精度误差的方法详解 #### 一、引言 在JavaScript中进行浮点数运算时,经常会出现精度误差的问题。例如,一个简单的加法运算 `0.1 + 0.2` 的结果并不是预期中的 `0.3`,而是 `0....

    javascript版BigDecimal类库

    本文将详细介绍JavaScript版的`BigDecimal`类库,以及如何在JavaScript环境中实现精确计算。 JavaScript版的`BigDecimal`类库是基于Java原版`BigDecimal`的改编,旨在提供与Java版本相似的功能,以支持大整数和任意...

    javascript网页版计算器

    JavaScript网页版计算器是一种基于Web的计算工具,利用JavaScript这门客户端脚本语言实现。JavaScript,简称JS,是由 Netscape 公司开发的,主要用于增强网页的交互性,它被广泛应用于网页和应用开发,实现动态内容...

    javascript 计算年龄跟生日倒计时(精确)

    在JavaScript编程中,计算年龄和实现生日倒计时是一项常见的任务,这主要涉及到日期对象的处理和时间差的计算。让我们深入探讨这个话题。 首先,计算年龄的基本原理是拿当前日期与出生日期进行比较,计算出两者之间...

    计算天数精确到分钟.rar

    在IT领域,尤其是在编程和数据分析中,经常需要对时间进行精确的处理,例如计算两个日期或时间之间的差值。"计算天数精确到分钟"这个主题涉及到如何在代码中准确地计算日期间隔,并且细化到分钟级别。在不同的编程...

    javascript计算器

    这些库可以用于进行需要精确计算的场景。 3. **数学技巧**:对于特定的运算,比如求和,可以使用累加器变量,每次只加上一个较小的数值,这样可以减少精度损失的影响。 4. **避免直接比较**:在进行浮点数比较时,...

    JavaScript获取当前cpu使用率的方法

    JavaScript获取CPU使用率的方法主要分为两种情况:一种是通过ActiveXObject在特定环境下获取,另一种是通过模拟计算来估算。这两种方法都有其局限性,但可以在不同的场景下提供一定的参考。 首先,如果允许使用HTA...

    JavaScript版赛车游戏源码

    例如,速度、加速度、重力、碰撞反弹等,都需要通过JavaScript进行精确计算。 5. **数据结构与算法**:游戏可能使用数组、对象等数据结构存储赛车、赛道信息。而算法则用于处理复杂的游戏逻辑,比如查找碰撞、排序...

    The JavaScript Anthology.pdf

    对于那些需要进行精确计算或数据处理的开发者来说,这部分内容尤为重要。 #### 3. 处理字符串 字符串操作是任何编程语言中的基本功能之一。本章详细讲解了字符串的创建、检索、修改和搜索方法,以及正则表达式的...

    JavaScript使用math.js进行精确计算操作示例

    主要介绍了JavaScript使用math.js进行精确计算操作,结合实例形式分析了开源库math.js进行高精度数学运算相关操作技巧,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics