65 lines
1.3 KiB
JavaScript
65 lines
1.3 KiB
JavaScript
|
// 浮点数加法
|
||
|
export function add (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
|
||
|
}
|
||
|
// 浮点数减法
|
||
|
export function sub (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 Math.abs(((arg1 * m - arg2 * m) / m).toFixed(n))
|
||
|
}
|
||
|
//浮点乘法
|
||
|
export function mul (a, b) {
|
||
|
var c = 0,
|
||
|
d = a.toString(),
|
||
|
e = b.toString();
|
||
|
try {
|
||
|
c += d.split(".")[1].length;
|
||
|
} catch (f) {}
|
||
|
try {
|
||
|
c += e.split(".")[1].length;
|
||
|
} catch (f) {}
|
||
|
return Number(d.replace(".", "")) * Number(e.replace(".", "")) / Math.pow(10, c);
|
||
|
}
|
||
|
//浮点除法
|
||
|
export function div (a, b) {
|
||
|
var c, d, e = 0,
|
||
|
f = 0;
|
||
|
try {
|
||
|
e = a.toString().split(".")[1].length;
|
||
|
} catch (g) {}
|
||
|
try {
|
||
|
f = b.toString().split(".")[1].length;
|
||
|
} catch (g) {}
|
||
|
return c = Number(a.toString().replace(".", "")), d = Number(b.toString().replace(".", "")), xyutil.mul(c / d, Math.pow(10, f - e));
|
||
|
}
|
||
|
export default {
|
||
|
add,
|
||
|
sub,
|
||
|
mul,
|
||
|
div
|
||
|
}
|