js小数加减时精度不准确

Posted simple-love

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js小数加减时精度不准确相关的知识,希望对你有一定的参考价值。

// 返回值:arg1加上arg2的精确结果
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
}

// 返回值:arg1减去arg2的精确结果
function accSub(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小数加减时精度不准确的主要内容,如果未能解决你的问题,请参考以下文章

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

js加减法运算多出很多小数点

javascript(js)小数精度丢失的解决方案

js加减乘除精度

double发生精度丢失的解决办法

javascript 整数加减会有精度丢失吗