Addition
function Addfun (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 (Ten, Math.max (R1, r2));
if (C > 0) {
var cm = Math.pow (ten, 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;
};
Subtraction
function Subfun (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 (Ten, Math.max (R1, r2)); Last modify by Deeka//dynamic Control accuracy length
n = (r1 >= r2)? R1:R2;
Return number (((ARG1 * M-ARG2 * m)/m). ToFixed (n));
};
Multiplication
function Mulfun (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 (ten, M);
};
Except
function Divfun (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 (T2-T1);
}
};
Resolving JS Accuracy