加法
function add(arg1, arg2) {
return (Math.round(arg1 * 100) + Math.round(arg2 * 100)) / 100;
}
减法
function subtract(arg1, arg2) {
return this.add(arg1, -arg2);
}
乘法
function multiple(arg1, arg2) {
return (Math.round(arg1 * 100) * Math.round(arg2 * 100)) / 10000;
}
除法
/**
* arg1与arg2相除,并以四舍五入的方式保留小数点后2位
*/
function divide(arg1, arg2) {
var d1, d2,
n1 = Number(arg1.toString().replace(".", "")),
n2 = Number(arg2.toString().replace(".", ""));
try {d1 = arg1.toString().split(".")[1].length;} catch (e) {d1 = 0;}
try {d2 = arg2.toString().split(".")[1].length;} catch (e) {d2 = 0;}
return this.toFixed((n1 / n2) * Math.pow(10, d2 - d1), 2);
}
/**
* arg以四舍五入的方式保留小数点后n位
*/
function toFixed(arg, n) {
if(n == 0) {
return Math.round(arg)
}
try {
var d, carryD, i,
ds = arg.toString().split('.'),
len = ds[1].length,
b0 = '', k = 0
if (len > n) {
while(k < n && ds[1].substring(0, ++k) == '0') {
b0 += '0'
}
d = Number(ds[1].substring(0, n))
carryD = Math.round(Number('0.' + ds[1].substring(n, len)))
len = (d + carryD).toString().length
if (len > n) {
return Number(ds[0]) + 1
} else if (len == n) {
return Number(ds[0] + '.' + (d + carryD))
}
return Number(ds[0] + '.' + b0 + (d + carryD))
}
} catch (e) {}
return arg
}
————————————————
版权声明:本文为CSDN博主「Homilier」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Honiler/article/details/86559589