/Accurate calculation of addition and subtraction. such as 0.1+0.2=0.3 or 0.1-0.2=-0.1
Copy Code code as follows:
function Addfn (dataone,datatwo) {
var dataoneint=dataone.tostring (). Split (".") [0];
var dataonefloat= "";
var datatwoint=datatwo.tostring (). Split (".") [0];
var datatwofloat= "";
var lengthone=0;
var lengthtwo=0;
var maxlength=0;
if (Dataone.tostring (). Split ("."). length==2) {
Dataonefloat=dataone.tostring (). Split (".") [1];
Lengthone=dataonefloat.tostring (). length;
}
if (Datatwo.tostring (). Split ("."). length==2) {
Datatwofloat=datatwo.tostring (). Split (".") [1];
Lengthtwo=datatwofloat.tostring (). length;
}
Maxlength=math.max (Lengthone,lengthtwo);
for (Var i=0;i<maxlength-lengthone;i++) {
dataonefloat+= "0";
}
for (Var i=0;i<maxlength-lengthtwo;i++) {
datatwofloat+= "0";
}
/**
* Multiply magnification of two data
* Make it all integers. Because integer computations
* More accurate.
*/
var one=dataoneint+ "" +dataonefloat;
var two=datatwoint+ "" +datatwofloat;
Alert ("DataOne:" +dataone+ "Datatwo:" +datatwo + "one:" +one+ "two:" +two);
/**
* After multiplying the data, the calculated results
* Then narrowing the same multiples
* And then get the right results
*/
var result= (number (one) +number (two))/math.pow (10,maxlength);
return result;
}