Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites
id('notabim').value = (total/100).toFixed(2).formatMoney();

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.