Ir para conteúdo

Arquivado

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

ŞŦΔŦƗĆ ŞҜΔŦ€βØΔŘĐ

Erro NaN

Recommended Posts

sou iniciante em javascript e estou há alguns dias tentado desvendar esse mistério e até agora nada.
 

 vTotalComImposto ()
        {
            return this.valorTotalDaCompra() - this.valorDoImposto();

        }

 

está retornando NaN, porém se eu remover a parte do this.valorDoImposto, o resultado do valorTotalDaCompra é retornado sem problemas. (o arquivo está inserido caso queiram ver mais detalhes).

mas a parte de js está assim

 

class Estoque 
{

    constructor (codigo,produto,quantidade,unitario)
    {

        this.codigo = codigo;
        this.produto = produto;
        this.quantidade = quantidade;
        this.unitario = unitario;

    }

        valorTotalDaCompra ()
        {

            return this.quantidade * this.unitario;
        /* OU
        var totalDaCompra = this.quantidade * this.unitario;
        return totalDaCompra;
         */

        }


        valorDoImposto (aliquotaDoImposto) 
        {

            return (aliquotaDoImposto * this.valorTotalDaCompra()) / 100;

        }

        
        valorDoDesconto (aliquotaDoDesconto)
        {

            return (aliquotaDoDesconto * this.valorTotalDaCompra()) / 100;

        }


        vTotalComImposto ()
        {
            return this.valorTotalDaCompra() - this.valorDoImposto();

        }

}

 

client.rar

Compartilhar este post


Link para o post
Compartilhar em outros sites
29 minutos atrás, ŞŦΔŦƗĆ ŞҜΔŦ€βØΔŘĐ disse:

valorDoImposto (aliquotaDoImposto) 
        {

            return (aliquotaDoImposto * this.valorTotalDaCompra()) / 100;

        }

 

Você está fazendo a referencia ao método sem passar o valor do parâmetro (aliquotaDoImposto).

valorComImposto() {
            return this.valorTotalDaCompra() - this.valorDoImposto(500);
        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por andiroldao
      Então, estava trabalhando nesse algoritmo em Portugol e resolvi traduzir para C, porém, se eu entro com dados em veículos maior que 2000, a Média de acidentes em cidades com menos de 2000 veículos de passeio aparece como: -nan. Alguém sabe me dizer onde estou errando?   #include <stdio.h>   int main(void) {     //- Variáveis     int codigo, veiculos, acidentes;     int codigo_menos_acidente = 0;     int codigo_mais_acidente = 0;     int indice_menor_cidade = 0;     int codigo_menor_cidade = 0;     int indice_maior_cidade = 0;          int codigo_maior_cidade = 0;     int soma_acidentes_menor_2000 = 0;     int menor_indice_acidentes = 0;     int maior_indice_acidentes = 0; int soma_geral_de_veiculos = 0; int numero_cidades = 0;     float media_de_veiculos_cidades = 0;     float numero_cidades_veiculos_menor_2000 = 0; float media_de_acidentes_menor_2000 = 0;     char continuar_a_pedir_dados = 1;   do{         //- Entrada de dados         printf("\nEntrada de dados \n\n");     //- Código da cidade;     printf("Insira o Código da Cidade: ");     scanf("%d", &codigo);     //- Número de veículos de passeio;     printf("Insira o número de veículos de passeio: ");     scanf("%d", &veiculos);     //- Número de acidentes de trânsito com vítimas;     printf("Insira número de acidentes de trânsito com vítimas: ");     scanf("%d", &acidentes);       soma_geral_de_veiculos += veiculos;     numero_cidades += 1;       if(acidentes< indice_menor_cidade || indice_menor_cidade == 0) {             codigo_menor_cidade = codigo;             indice_menor_cidade = acidentes;         }     if(acidentes > indice_maior_cidade || indice_maior_cidade == 0) {         codigo_maior_cidade = codigo;             indice_maior_cidade = acidentes;     }     if(veiculos < 2000) {         soma_acidentes_menor_2000 += acidentes;         numero_cidades_veiculos_menor_2000 += 1;     }     if(acidentes < menor_indice_acidentes || menor_indice_acidentes == 0) {         codigo_menos_acidente = codigo;         menor_indice_acidentes = acidentes;     }     if(acidentes > maior_indice_acidentes || maior_indice_acidentes == 0) {             codigo_mais_acidente = codigo;         maior_indice_acidentes = acidentes;     }         printf("\nPara inserir novos dados digite \"1\", para sair do programa digite outro valor: ");     scanf("%s", &continuar_a_pedir_dados);     }     while(continuar_a_pedir_dados == '1');         printf("\n\nResultado da pesquisa\n");           media_de_veiculos_cidades = soma_geral_de_veiculos / numero_cidades;         media_de_acidentes_menor_2000 = soma_acidentes_menor_2000 / numero_cidades_veiculos_menor_2000;     //- Qual o maior índice de acidente de trânsito;     printf("\nMaior índice de acidentes: %d\n", maior_indice_acidentes);     //- Qual cidade pertence o maior índice de acidente de trânsito;     printf("\nCidade com mais acidentes: %.d\n", codigo_maior_cidade);     //- Qual o menor índice de acidente de trânsito;     printf("\nMenor índice de acidentes: %d\n", menor_indice_acidentes);     //- Qual cidade pertence o menor índice de acidente de trânsito;     printf("\nCidade com menos acidentes: %d\n", codigo_menor_cidade);     //- Qual a média de veículos nas0 cidades juntas;     printf("\nMédia de víiculos: %.f\n", media_de_veiculos_cidades);     //- Qual a média de acidentes de trânsito nas cidades com menos de 2000 veículos de passeio.     printf("\nMédia de acidentes em cidades com menos de 2000 veículos de passeio: %.f\n", media_de_acidentes_menor_2000);       printf("\n"); return 0; }
    • Por nummularius
      Salve, meus amigos!
      Estou começando meus estudos em programação, ainda na fase de lógica da programação.
      O código abaixo é para executar a seguinte tarefa: pegar, através do input (id = "inputValor" no HTML) três valores numéricos, através da função insereValor, colocar esses valores no array recebeValor e depois fazer a média desses valores.
       
      Limitei a função insereValor em 3 valores, e depois a função mediaFunc faz a média desses 3 valores.
      O problema: parece que o loop (while) só retorna o primeiro valor como numérico, os outros valores surgem como isNaN = true. Ou seja, não tenho como fazer o cálculo de média, pois o resultado da NaN.
       
      O que estou fazendo de errado?
      Obrigado.
       
      <meta charset = "UTF-8"> <input id = "inputValor" /> <button id = "botaoInsere">Inserir</button> <p id = "pegaTexto"></p> <script type="text/javascript"> function mediaFunc(v1, v2, v3){ var media = parseInt((v1 + v2 + v3) / limite); return media; } function insereValor(){ while(posicao < limite) { //pega o valor inputado no campo em branco. recebeValor.push(parseInt(document.getElementById("inputValor").value)); //acrescenta uma posição no array. Ou seja, vai para a próxima posição. posicao++; inputValor.focus(); return recebeValor; } mediaFunc(); inputValor.focus(); } var posicao = 0; var limite = 3; var recebeValor = []; var botaoInsere = document.getElementById('botaoInsere'); botaoInsere.onclick = insereValor; </script>  
×

Informação importante

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