Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

209
Visualizações
Estoy tratando de escribir un programa de JavaScript que calcule el salario bruto, las horas extra, el pago neto y deduzca impuestos del pago neto en función de los dependientes reclamados.

Tengo la primera mitad del programa funcionando bien, que obtiene las horas trabajadas y la tasa de pago de los usuarios y luego imprime el pago bruto con el pago de horas extras, si las hay. Pero necesito imprimir el pago neto en la pantalla.

La segunda mitad del programa pregunta cuántos dependientes reclama el usuario y determina la tasa impositiva a partir de esa respuesta. Luego se supone que debe deducir los impuestos del bruto, que luego sería el pago neto.

Aquí está el código que tengo para el programa.

 function myPay() { var name = prompt("What is your name?"); var rate = parseInt(prompt("How much are you payed?")); var hours = parseInt(prompt("How many hours do you work?")); var depend = parseInt(prompt("How many dependents do you claim?")); if (hours > 40 && rate < 20) { var overtime = rate * 1.5 * (hours - 40); //Beginning of overtime. var regular = rate * 40; var pay = overtime + regular; } else var pay = rate * hours; var net = pay * tax; if (depend = 0 && pay > 1000) { var tax = .33; } else if (depend = 0 && pay <= 1000) { var tax = .28; } else if (depend >= 1 && depend <= 3 && pay > 1000) { var tax = .25; } else if (depend >= 1 && depend <= 3 && pay <= 1000) { var tax = .22; } else if (depend >= 4 && depend <= 6 && pay > 1000) { var tax = .22; } else if (depend >= 4 && depend <= 6 && pay <= 1000) { var tax = .15; } else if (depend > 6 && pay > 1000) { var tax = .15; } else if (depend > 6 && pay <= 1000) { var tax = .10; } document.write("<p> your paycheck </p>" + net); }

Obtengo un NaN en la sección de salida cuando ejecuto esto en el navegador. No estoy seguro de si esto podría deberse al formato que estoy usando para la variable "impuesto".

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

NaN porque en esta etapa var net = pay * tax; , tax no está definido. Multiplicar por resultados undefined en NaN .

Intente instanciar el impuesto fuera de la instrucción if para DRY, y llámelo en la multiplicación de pay * tax después:

 var tax = 1; // so long as tax is not undefined, multiplication will return a number. if(x) { tax = 0.22 } elseif( ... ) var net = pay * tax;
about 4 years ago · Juan Pablo Isaza Relatório

0

EDITAR: he cambiado el código de acuerdo con tu comentario.

 function myPay() { var name = prompt("What is your name?"); var rate = parseInt(prompt("How much are you payed?")); var hours = parseInt(prompt("How many hours do you work?")); var depend = parseInt(prompt("How many dependents do you claim?")); // Set variable here for later to be used (Preventing out of scope errors.) var pay; var tax; if (hours > 40 && rate < 20) { var overtime = rate * 1.5 * (hours - 40); //Beginning of overtime. var regular = rate * 40; pay = overtime + regular; } else { pay = rate * hours; } if (depend == 0 && pay > 1000) { tax = .33; } else if (depend == 0 && pay <= 1000) { tax = .28; } else if (depend >= 1 && depend <= 3 && pay > 1000) { tax = .25; } else if (depend >= 1 && depend <= 3 && pay <= 1000) { tax = .22; } else if (depend >= 4 && depend <= 6 && pay > 1000) { tax = .22; } else if (depend >= 4 && depend <= 6 && pay <= 1000) { tax = .15; } else if (depend > 6 && pay > 1000) { tax = .15; } else if (depend > 6 && pay <= 1000) { tax = .10; } var net = pay - (pay * tax); document.write("<p> your paycheck </p>" + net); } myPay();

Resultados

 Name: n How much are you payed: 1000 How many hours do you work: 1 How many dependents do you claim: 7 Paycheck: 900

Lo siento si me equivoco de nuevo.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda