javaScriptにおける加減乗除の不正確な問題の解決方法


javaScriptは小数の4つの混合演算については正確ではないので、カスタム関数で正確な演算を実現します.
//                                     ,       
//    ,           
//  :javascript         ,                。               。
//  :accDiv(arg1,arg2)
//   :arg1  arg2     
function accDiv(arg1, arg2) {
    return accMul(arg1, 1 / arg2);
}
//    ,           。
//  :                   ,                   
//  :javascript         ,                。               。
//  :accMul(arg1,arg2)
//   :arg1  arg2     
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)

}
//    ,           
//  :javascript         ,                。               。
//  :accAdd(arg1,arg2)
//   :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 (accMul(arg1, m) + accMul(arg2, m)) / m;

}
//    ,           
//  :javascript         ,                。               。
//  :accSub(arg1,arg2)
//   :arg1  arg2     
function accSub(arg1, arg2) {

    return accAdd(arg1, -arg2);
}