Ir para conteúdo
Fórum Script Brasil
  • 0

Arredondamento De Notas


Guest regina

Pergunta

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

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

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)

Link para o comentário
Compartilhar em outros sites

  • 0

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!!!

Link para o comentário
Compartilhar em outros sites

  • 0

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!!!

Link para o comentário
Compartilhar em outros sites

  • 0

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?

Link para o comentário
Compartilhar em outros sites

  • 0

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.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...