//加法函式
function
accadd(arg1, arg2)
catch
(e)
try
catch
(e)
m = math.pow(10, math.max(r1, r2))
return (arg1 * m + arg2 * m) /m}//
給number型別增加乙個add方法,呼叫起來更加方便。
number.prototype.add = function
(arg)
console.log(accadd(0.11, 0.2));
console.log(0.1.add(0.2));
//減法函式
function
accsub(arg1, arg2)
catch
(e)
try
catch
(e)
m = math.pow(10, math.max(r1, r2));
n = (r1 >= r2) ?r1 : r2;
return ((arg1 * m - arg2 * m) /m).tofixed(n);
}number.prototype.sub = function
(arg)
console.log(accsub(0.2, 0.1));
console.log(0.1.sub(0.2));
//乘法函式
function
accmul(arg1, arg2)
catch
(e) {}
try
catch
(e) {}
console.log(s1.replace(".", ""));
console.log(s2.replace(".", ""));
return number(s1.replace(".", "")) * number(s2.replace(".", "")) / math.pow(10, m);
}number.prototype.mul = function
(arg)
console.log(accmul(0.05, 0.05));
console.log(0.1.mul(0.2));
//除法函式
function
accdiv(arg1, arg2)
catch
(e) {}
try
catch
(e) {}
//with 語句的原本用意是為逐級的物件訪問提供命名空間式的速寫方式. 也就是在指定的**區域, 直接通過節點名稱呼叫物件。
//with 通常被當做重複引用同乙個物件中的多個屬性的快捷方式,可以不需要重複引用物件本身。
////with(math)
r1 = number(arg1.tostring().replace(".", ""));
r2 = number(arg2.tostring().replace(".", ""));
return (r1 / r2) * math.pow(10, t2 -t1);
}number.prototype.div = function
(arg)
console.log(accdiv(0.05, 0.05));
console.log(0.1.div(0.2));
js處理long精度丟失
介紹 rest介面,解決返回的long型別數字精度丟失問題 問題描述 後端long型別的資料返回前端時,經過js處理後,會存在精度丟失的情況。之所以會這樣,是因為long型別的數字超過了js的數字處理範圍。問題重現 解決方案 data accessors chain true public clas...
js運算精度問題
原理是,將浮點數乘以 擴大 10的n次方倍,把浮點數變為整數後再進行相應的運算,最後將得到的結果除以 縮小 10的n次方倍。原理示例 將 console.log 1 0.8 變為 console.log 1 10 0.8 10 10 即可得到正確的值 根據上述原理,可以封裝一些方法出來解決此類問題。...
js運算精度問題
原理是,將浮點數乘以 擴大 10的n次方倍,把浮點數變為整數後再進行相應的運算,最後將得到的結果除以 縮小 10的n次方倍。原理示例 將 console.log 1 0.8 變為 console.log 1 10 0.8 10 10 即可得到正確的值 根據上述原理,可以封裝一些方法出來解決此類問題。...