Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
-
William Bruno,Obrigado por ajudar mas devido ao meu pouco conhecimento em javascript não compreendi onde usar o .toFixed(2)
Este código peguei na net e adaptei para o meu uso.
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.
id('notabim').value = (total/100).toFixed(2).formatMoney();
William BrunoValeu obrigado!
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.
.toFixed(2)