JavaScript quatro operações aritméticas
Autor:Eve Cole
Data da Última Atualização:2009-06-11 16:23:19
<script type="texto/javascript">
var tambémAString = '25';
var éANumber = 25;
// var isEqual = (alsoAString==isANumber); // Isso é verdade, ambos são 25.
var isEqual = (alsoAString===isANumber); // False , um é um número, o outro uma string.
// alerta(isEqual);
var floatError = 0,06 + 0,01
//alert(floatError);
//Função de divisão, usada para obter resultados de divisão precisos
//Nota: O resultado da divisão do JavaScript terá erros, que serão mais óbvios ao dividir dois números de ponto flutuante. Esta função retorna um resultado de divisão mais preciso.
//Chamada: accDiv(arg1,arg2)
//Valor de retorno: o resultado exato da divisão de arg1 por arg2
função accDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
tente{t1=arg1.toString().split(".")[1].length}catch(e){}
tente{t2=arg2.toString().split(".")[1].length}catch(e){}
com(Matemática){
r1=Número(arg1.toString().replace(".",""))
r2=Número(arg2.toString().replace(".",""))
retornar (r1/r2)*pow(10,t2-t1);
}
}
//Adicione um método div ao tipo Number para tornar a chamada mais conveniente.
Número.prototype.div = função (arg){
return accDiv(este, arg);
}
//Função de multiplicação, usada para obter resultados de multiplicação precisos
//Nota: O resultado da multiplicação do JavaScript terá erros, que serão mais óbvios quando dois números de ponto flutuante forem multiplicados. Esta função retorna um resultado de multiplicação mais preciso.
//Chamada: accMul(arg1,arg2)
//Valor de retorno: o resultado exato da multiplicação de arg1 por arg2
função accMul(arg1,arg2)
{
var m=0,s1=arg1.toString(),s2=arg2.toString();
tente{m+=s1.split(".")[1].length}catch(e){}
tente{m+=s2.split(".")[1].length}catch(e){}
retornar Número(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}
//Adicione um método mul ao tipo Number para tornar a chamada mais conveniente.
Número.prototype.mul = função (arg){
return accMul(arg, este);
}
//Função de adição, usada para obter resultados de adição precisos
//Nota: O resultado da adição de JavaScript terá erros, que serão mais óbvios ao adicionar dois números de ponto flutuante. Esta função retorna um resultado de adição mais preciso.
//Chama: accAdd(arg1,arg2)
//Valor de retorno: o resultado exato de arg1 mais arg2
função accAdd(arg1,arg2){
var r1,r2,m;
tente{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
tente{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2))
retornar (arg1*m+arg2*m)/m
}
//Adicione um método add ao tipo Number para tornar a chamada mais conveniente.
Número.prototype.add = função (arg){
return accAdd(arg,este);
}
document.writeln("Operação não melhorada: 7*0.8="+7*0.8+"<br>");
document.writeln("Operação após melhoria: 7*0.8="+(7).mul(0.8)+"<br>");
document.writeln("Operação não melhorada: 0,06+0,01=" + 0,06+0,01 +"<br>")
document.writeln("Operação aprimorada: 0,06+0,01=" + 0,06.add(0,01) +"<br>")
</script>