Entre para seguir isso  
Seguidores 0

Arredondamento De Notas

10 posts neste tópico

Postado · Denunciar post

Olá Pessoal!

Estou desenvolvendo um sistema de notas escolares, encontrei a seguinte situação:

Nota=50

Recuperação=65

Média = 57.5

o problema é que não posso manter este valor o correto, para este caso, seria 60, ao usar o Math.ceil ou Math.round eu obtenho o valor 58.

Como devo proceder para obter o valor 60?

Uma situação que tentei, mas que me parece mais difícil é esta:

Nota=5.0

Recuperação=6.5

Média = 6

Por que considero mais difícil? Porque eu teria que criar uma máscara para cada item, porém como trataria em caso de nota = 100? Gostaria de facilitar ao cliente.

Se alguém puder me ajudar em algumas das situações acima eu agradeço muito :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Acho que está no caminho certo. Tenta fazer isto:

var valor_arredondado = Math.round(media / 10) * 10;

Verificando:

Imaginemos que: media = 57.5

Neste caso, a divisão "media / 10" produziria o valor: 5.75

Aplicando a função Math.round, seria obtido o valor: 6

Realizando a operação de multiplicação por 10, teríamos o resultado: 60

Este resultado seria armazenado na variável "valor_arredondado".

Corrija-me se estiver errado.

B)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Muito obrigada CSML sistemas!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Existe uma questão importante, qual o grau de precisão que é estabelecido para a média? Aceita valores múltiplos de 5 também?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Sim a média pode ser 60 ou 65, por exemplo.

Por?

Novamente agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

No caso de aceitar múltiplos de 5, basta ajustar o cálculo anteriormente proposto, da seguinte forma:

var valor_arredondado = Math.round(media / 5) * 5;

Ok?

B)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Vou verificar com a direção da escola como funciona exatamente o arredondamento deles, mas acredito que esteja correto dessa forma.

Obrigada CSML sistemas e Feliz Páscoa!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Pessoal, surgiu uma nova situação.

Ao apresentar o módulo de boletim, a pedagoga falou que deve ter decimal, ou seja 6,0 / 10,0 etc.

Agora a fórmula não funciona mais gera NAN, como faço devo fazer para que volte a funcionar, considerando números decimais?

Desde já obrigada!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Se o resultado estiver correto, mas a ordem de grandeza mudou, basta ajustar para a atual, tipo:

var valor_arredondado = Math.round(media / 5) * 5; --> obtém o valor correto, mas com escala de 0 a 100

var valor_arredondado = (Math.round(media / 5) * 5) / 10; --> ajusta o valor para a escala de 0 a 10

Será que seria algo assim?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Postado · Denunciar post

Agora está tudo funcionando certinho, vou postar o script para quem precisar poder utilizar ao menos como fonte de pesquisa:

function CalculaMedia(nota,recuperacao) {
var resultado = "0";
if (nota == "") {
    nota = "0";
}    
nota = nota.replace( ",", "." );
if ((recuperacao == "") || (recuperacao == 0)) {
    recuperacao = "0";
    resultado = nota;
}else{
    recuperacao = recuperacao.replace( ",", "." );
    var media = (parseFloat(nota) + parseFloat(recuperacao))/2;
    media = Math.round((parseFloat(media) / 5) * 5);
    media = media.toFixed(1);
    resultado = media;
}
resultado = resultado.replace( ".", "," );
return resultado;
}

Agradeço a ajuda do CSML sistemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora
Entre para seguir isso  
Seguidores 0