JavaScript cuatro operaciones aritméticas
Autor:Eve Cole
Fecha de actualización:2009-06-11 16:23:19
<tipo de script="texto/javascript">
var tambiénAString = '25';
var es un número = 25;
// var isEqual = (alsoAString==isANumber); // Esto es cierto, ambos son 25.
var isEqual = (alsoAString===isANumber); // False, uno es un número y el otro una cadena.
// alerta(esIgual);
var flotadorError=0.06+0.01
//alerta(floatError);
//Función de división, utilizada para obtener resultados de división precisos
// Nota: El resultado de la división de JavaScript tendrá errores, que serán más obvios al dividir dos números de punto flotante. Esta función devuelve un resultado de división más preciso.
// Llamada: accDiv(arg1,arg2)
//Valor de retorno: el resultado exacto de dividir arg1 por arg2
función accDiv(arg1,arg2){
vart1=0,t2=0,r1,r2;
intente{t1=arg1.toString().split(".")[1].length}catch(e){}
intente{t2=arg2.toString().split(".")[1].length}catch(e){}
con(Matemáticas){
r1=Número(arg1.toString().replace(".",""))
r2=Número(arg2.toString().reemplazar(".",""))
devolver (r1/r2)*pow(10,t2-t1);
}
}
//Agregue un método div al tipo Número para que sea más conveniente llamar.
Número.prototipo.div = función (arg){
devolver accDiv(este, arg);
}
// Función de multiplicación, utilizada para obtener resultados de multiplicación precisos
// Nota: El resultado de la multiplicación de JavaScript tendrá errores, que serán más obvios cuando se multipliquen dos números de coma flotante. Esta función devuelve un resultado de multiplicación más preciso.
// Llamada: accMul(arg1,arg2)
//Valor de retorno: el resultado exacto de multiplicar arg1 por arg2
función acumulación(arg1,arg2)
{
var m=0,s1=arg1.toString(),s2=arg2.toString();
intente{m+=s1.split(".")[1].length}catch(e){}
prueba{m+=s2.split(".")[1].length}catch(e){}
devolver Número(s1.replace(".",""))*Número(s2.replace(".",""))/Math.pow(10,m)
}
//Agregue un método mul al tipo Número para que sea más conveniente llamar.
Número.prototipo.mul = función (arg){
return acumulación(arg, this);
}
//Función de suma, utilizada para obtener resultados de suma precisos
// Nota: El resultado de la suma de JavaScript tendrá errores, que serán más obvios al sumar dos números de punto flotante. Esta función devuelve un resultado de suma más preciso.
// Llamada: accAdd(arg1,arg2)
//Valor de retorno: el resultado exacto de arg1 más arg2
función agregar(arg1,arg2){
varr1,r2,m;
intente{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
intente{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
retorno (arg1*m+arg2*m)/m
}
//Agregue un método add al tipo Número para que sea más conveniente llamar.
Número.prototipo.add = función (arg){
return accAdd(arg,this);
}
document.writeln("Operación no mejorada: 7*0.8="+7*0.8+"<br>");
document.writeln("Operación después de la mejora: 7*0.8="+(7).mul(0.8)+"<br>");
document.writeln("Operación no mejorada: 0.06+0.01=" + 0.06+0.01 +"<br>")
document.writeln("Operación mejorada: 0.06+0.01=" + 0.06.add(0.01) +"<br>")
</script>