Ir para conteúdo

POWERED BY:

Arquivado

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

4code

como somar numeros reais ex (1.5+1.5+6.3)

Recommended Posts

e ae nao estou conseguindo efetuar somas de numeros reais segue o script, tentei por parseFloat mas tb nao foi, se alguem souber... vlw

<html>
<body>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>

<pre>

<script>

var nota1;
var nota2;
var nota3;
var somar;

do {
nota1= prompt ("Nota de Participação");
nota2= prompt ("Nota da Prova");
nota3= prompt ("Nota do trabalho");
   }
 
while (nota1== null || nota1== "");
while (nota2== null || nota2== "");
while (nota3== null || nota3== "");


somar =  parseInt(nota1) + parseInt(nota2) + parseInt(nota3) ; 


document.writeln('Nota de Participação: ' + nota1 );
document.writeln('Nota da Prova: ' + nota2);
document.writeln('Nota do trabalho: ' + nota3);
document.writeln('Grau A: ' + somar);
</script>
</pre>


</body>
</html> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem certeza que fez o parseFloat correto? Eu fiz aqui no firefox o parseFloat e funcionou.

Qual seu navegador?

E já testou com o ponto ao invés da vírgula?

todas as notas sao strings e somar não é.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você cometeu alguns dois erros a seguir:

- Digitou parseFloat errado. Exemplo: parsefloat

- Digitou ,(vírgula) ao invés .(ponto)

Exemplo:

parseFloat("10.5") funciona!

parseFloat("10,5") não!

 

Código funcionando 100% abaixo:

<html>
<body>
<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>

<pre>

<script>

    var nota1;
    var nota2;
    var nota3;
    var somar;

    do {
        nota1= prompt ("Nota de Participação");
        nota2= prompt ("Nota da Prova");
        nota3= prompt ("Nota do trabalho");
    }

    while (nota1== null || nota1== "");
    while (nota2== null || nota2== "");
    while (nota3== null || nota3== "");

    // Substitui vírgula por ponto
    nota1 = nota1.replace(",",".");
    nota2 = nota2.replace(",",".");
    nota3 = nota3.replace(",",".");

    // Converte string em float
    nota1 = parseFloat(nota1);
    nota2 = parseFloat(nota2);
    nota3 = parseFloat(nota3);

    somar = nota1 + nota2 + nota3;

    // Precisão decimal
    somar = somar.toFixed(2);
    nota1 = nota1.toFixed(2);
    nota2 = nota2.toFixed(2);
    nota3 = nota3.toFixed(2);

    document.writeln('Nota de Participação: ' + nota1 );
    document.writeln('Nota da Prova: ' + nota2 );
    document.writeln('Nota do trabalho: ' + nota3 );
    document.writeln('Grau A: ' + somar );
</script>
</pre>


</body>
</html> 

Usei Replace - assim você pode entrar tanto com vírgula ou ponto, ele muda pra ponto se preciso

Usei o toFixed - assim você controla o número de casas decimais

 

Se dúvida esclarecida, favor marcar como resolvido.

Caso tenha alguma dúvida só perguntar.

 

[]s

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.