`
天天向上1989
  • 浏览: 418191 次
  • 性别: Icon_minigender_2
  • 来自: 南京
社区版块
存档分类
最新评论

JS处理加减乘除误差较大

 
阅读更多
    function sub(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 parseFloat(((arg1 * m - arg2 * m) / m).toFixed(n));
    }
    //加法
    function add(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 mul(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 div(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);
        }
    }
 
分享到:
评论

相关推荐

    js 加减乘除

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

    MathTask_单元测试_加减乘除运算_

    "MathTask_单元测试_加减乘除运算_"这个标题暗示我们正在处理一个与数学运算相关的项目,特别是涉及基本的加法、减法、乘法和除法。这个项目可能是一个计算器应用、一个数学库或者任何其他需要进行数值计算的软件...

    详解js加减乘除精确计算

    JavaScript中的加减乘除运算在处理浮点数时可能会出现精度丢失的问题,这是由于计算机内部存储和计算浮点数的方式导致的。浮点数在计算机内存中是以二进制表示的,某些十进制小数转换成二进制时无法精确表示,从而...

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

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

    js 对小数加法精度处理示例说明

    3. 接着,计算两个数中最大小数位数,然后利用`Math.pow(10, maxDecimal)`计算一个乘数,这个乘数足够大,使得所有小数部分都被整数化,避免精度损失。 4. 最后,将两个参数分别与乘数相乘,然后相加,再除以相同的...

    js浮点数处理转精确值

    这样可以确保在进行加减乘除运算时保持精度。例如,将0.1和0.2分别转换为1和2,然后进行加法,得到3,再除以10得到0.3,这样就避免了浮点数运算的不精确性。 另一种方法是使用JavaScript的`Number.toFixed()`方法,...

    Js四则运算函数代码

    JavaScript中的四则运算在处理浮点数时可能会出现精度问题,这是由于计算机内部表示浮点数的方式导致的。为了确保在进行除法、乘法、加法和减法操作时获得精确的结果,我们可以使用特定的函数来处理这些运算。下面...

    aboutnumber_js-main-源码.rar

    2. **数字处理函数**:项目名中提到“number”,这意味着代码可能包含各种与数字操作相关的函数,如加减乘除、取余、四舍五入、格式化数字、处理浮点数误差等。JavaScript内置了一些数学函数,如`Math.pow()`、`Math...

    详解JS– 浮点数运算处理

    类似的问题还存在于其他浮点数的加减乘除运算中。 对于这样的问题,有几种常见的解决方案: **方案一:保留小数位数** 一种简单但不一定完全精确的方法是限制运算结果的小数位数。这适用于精度要求不高的情况。...

    javascript小数精度丢失的完美解决方法

    先确定涉及数值的小数位数,然后根据最大或最小的小数位数来对数值进行放大或缩小,以保证在进行加减乘除运算时,所有的计算都是基于整数进行的,避免了直接对小数进行运算而产生的精度误差。 文章最后提到,由于...

    javasciprt操作数字

    JavaScript中的数字类型是基于IEEE 754标准的双精度浮点数,可以进行加减乘除、取余、指数等基础运算。例如: ```javascript var num1 = 10; var num2 = 5; console.log(num1 + num2); // 加法 console.log...

    包含金额_日期输入框,带弹出数字面板的计算输入框

    面板上的数字按钮可能会包括0-9的基本数字,加减乘除等运算符,以及可能的清除和确认键。这样的设计使得在移动设备上操作更为便捷,减少了屏幕上的触摸误差。 实现这样一个组件需要考虑以下几个技术点: 1. **前端...

    js代码-Number.MIN_SAFE_INTEGER

    1. **精度问题**:当整数超出安全范围时,进行加减乘除等运算可能无法得到预期的结果,因为浮点数的精度问题可能导致误差。 2. **位运算**:JavaScript的位运算符(如`、`>>`、`>>>`)对于大于安全整数范围的数值也...

    c# 定点数库演示,c#和C++有什么差别.docx

    QFx和FixedMath这两个库都为C#程序员提供了便利,它们不仅实现了基本的加减乘除,还涵盖了三角函数等复杂数学运算,有助于提升计算精度。使用这些库时,开发者需要正确配置定点数的倍数和小数位数,以确保计算结果的...

    same-ish:Clojure库,用于测试中浮点类型的近似比较

    浮点数在计算机中的存储遵循IEEE 754标准,这种标准允许一定的精度损失,特别是在进行加减乘除等运算时。例如,1.0 - 0.1可能不等于0.9,因为这两个值在计算机内存中不是精确表示的。这种现象称为舍入误差,是所有...

    fraction:分数运算,可避免部分小数带来的精度问题

    它支持创建、比较、加减乘除、取模、简化、倒数等操作,以及转换为小数、百分比、字符串等多种形式。以下是一些关键知识点: 1. **创建分数**:你可以通过传入两个数字来创建一个分数对象,例如`var f = new ...

    四则混合运算.rar

    这意味着先进行乘除运算,后进行加减运算。在编程中,如果不使用括号明确指定运算顺序,程序会按照运算符的优先级自动执行。例如,5 + 2 * 3首先计算2 * 3,然后将结果7与5相加。 2. **括号的使用**:括号可以改变...

    Java基本语法之一执行HelloWorldjsp并讲解.docx

    - 运算符的优先级:先乘除后加减。 - 特殊情况:除零会导致运行时错误。 #### 4.2 比较运算符 - 用于比较两个操作数的值:`==`、`!=`、`>`、`、`>=`、`。 #### 4.3 逻辑运算符 - `&&`、`||`、`!` 分别表示逻辑与、...

Global site tag (gtag.js) - Google Analytics