栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

Js BigDecimal实现精确加减乘除运算的方法

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Js  BigDecimal实现精确加减乘除运算的方法

加法函数,用来得到精确的加法结果
function accAdd(arg1, arg2) {
var r1, r2, m, c;
try {
r1 = arg1.toString().split(".")[1].length;
} catch (e) {
r1 = 0;
}
try {
r2 = arg2.toString().split(".")[1].length;
} catch (e) {
r2 = 0;
}
c = Math.abs(r1 - r2);
m = Math.pow(10, Math.max(r1, r2));
if (c > 0) {
var cm = Math.pow(10, c);
if (r1 > r2) {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", "")) cm;
} else {
arg1 = Number(arg1.toString().replace(".", "")) cm;
arg2 = Number(arg2.toString().replace(".", ""));
}
} else {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", ""));
}
return (arg1 + arg2) / m;
}

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)); //last modify by deeka //动态控制精度长度    n = (r1 >= r2) ? r1 : r2;    return ((arg1 * m - arg2 * m) / m).toFixed(n);}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 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 (r1 / r2) * pow(10, t2 - t1);    }}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/245243.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号