Jump to content
Sign in to follow this  
Dineysil

Somar campos

Recommended Posts

Boa tarde!

 

Preciso somar 04 campos e dividir para ter a média, estou usando o seguinte código:

<script type="text/javascript">
String.prototype.formatMoney = function() {
    var v = this;
 
    if(v.indexOf('.') === -1) {
        v = v.replace(/([\d]+)/, "$1,00");
    }
 
    v = v.replace(/([\d]+)\.([\d]{1})$/, "$1,$20");
    v = v.replace(/([\d]+)\.([\d]{2})$/, "$1,$2");
 
    return v;
};
function id( el ){
    return document.getElementById( el );
}
function getMoney( el ){
    var money = id( el ).value.replace( ',', '.' );
    return parseFloat( money )*100;
}
function soma()
{
    var total = getMoney('p1t')+getMoney('p2t')+getMoney('p3t')+getMoney('p4t');
    total = parseFloat( total )/4
id('notabim').value = String(total/100).formatMoney();
 
}
</script>
<script type="text/javascript">
function SomarValores(){
 var s1 = document.getElementById("p1t").value;
 var s2 = document.getElementById("p2t").value;
 var s3 = document.getElementById("p3t").value;
 var s4 = document.getElementById("p4t").value;
 var s5 = parseInt(s1) + parseInt(s2) + parseInt(s3) + parseInt(s4);
 var s6 = parseInt(s5) / parseInt(4) ;
 document.form2.notabim.value = parseInt(s6);
// nb = parseInt(s6);
 //alert(s6);
}
 </script>

Uso no "onBlur="soma()"

Funciona apenas com numeros inteiros, mas preciso de soma notas de alunos, ou seja 10,0 / 9,50 / 8,75

quando digito notas fracionadas da os seguinte resultado por exemplo:

 

10,0 + 10,0 + 10,0 + 5,55 = média 8.8875

 

Preciso que o resultado seja : 8,88 - duas casas

 

O que posso alterar no código para definir isso

 

Obrigado.

 

Claudiney

www.cassystems.com.br

Edited by William Bruno
Adicionar code

Share this post


Link to post
Share on other sites

Boa tarde!

 

No código abaixo:

 

<script type="text/javascript">
String.prototype.formatMoney = function() {
    var v = this;
 
    if(v.indexOf('.') === -1) {
        v = v.replace(/([\d]+)/, "$1,00");
    }
 
    v = v.replace(/([\d]+)\.([\d]{1})$/, "$1,$20");
    v = v.replace(/([\d]+)\.([\d]{2})$/, "$1,$2");
 
    return v;
};
function id( el ){
    return document.getElementById( el );
}
function getMoney( el ){
    var money = id( el ).value.replace( ',', '.' );
    return parseFloat( money )*100;
}
function soma()
{
    var total = getMoney('p1t')+getMoney('p2t')+getMoney('p3t')+getMoney('p4t');
    total = parseFloat( total )/4
id('notabim').value = String(total/100).formatMoney();
 
}
</script>

Na soma das notas

10,0 + 10,0 + 10,0 + 5,55 / 4 = média 8.8875

 

Tem como formatar com virgula para 8,88

 

Eu tentei usar o .toFixed(2) mas não consegui.

Se alguem puder ajudar agradeço.

Share this post


Link to post
Share on other sites
id('notabim').value = (total/100).toFixed(2).formatMoney();

Share this post


Link to post
Share on other sites

William Bruno

Boa tarde, funcionou beleza mas tenho uma dúvida e talvez possa me ajudar.

 

Tenho em ASP um lastro

<%
do while not rectabela.eof
%>

 

e só esta funcionando no "primeiro registro" o calculo você pode me ajudar nisto também.

 

Agradeço.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.