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

202
Visualizações
¿Por qué el promedio sale incorrectamente en mi programa C?
#include <stdio.h> int main(void) { float score1; float score2; float score3; float value; printf("Please enter three exam score: "); scanf("%f", &score1); scanf("%f", &score2); scanf("%f", &score3); printf("First exam: %.1f", score1); printf("%%\\n"); printf("Second exam: %.0f", score2); printf("%%\\n"); printf("Third exam: %.0f", score3); printf("%%\\n"); printf("-----------------------------------"); value = (score1 + score2 + score3) / 3.0; printf("\\n"); printf("Average: %.14f",value); printf("%%.\\n"); return 0; }

-Aquí está mi código. los tres puntajes son 75.5 92 100 y el promedio de estos es 89.16666666666667%. pero obtengo 89.16666412353516%. como el promedio cuando ejecuto el programa. cualquier ayuda es apreciada!

Gracias -Slurpski

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Cambiar float value; al double value; entonces obtendrá el valor que desea, que fue 89.16666666666667 .

Lo más probable es que Float sea un número de punto flotante de precisión simple IEEE 754 de 32 bits (1 bit para el signo, 8 bits para el exponente y 23 bits para el valor). float tiene 7 dígitos decimales de precisión.

over 4 years ago · Santiago Trujillo Relatório

0

1/6 es periódico en decimal, por lo que no se puede representar exactamente como un número de coma flotante decimal. Requeriría un almacenamiento infinito para hacerlo. Usted afirma que 89.16666666666667 es correcto, pero no lo es. Aplicó algo de redondeo para obtener eso.

1/6 es periódico en binario, por lo que no se puede representar exactamente con un número de coma flotante. Requeriría un almacenamiento infinito para hacerlo. Por lo tanto, se debe aplicar algún redondeo. 89.16666412353515625 se ve raro en decimal, pero es simplemente el número correcto con algo de redondeo aplicado en binario. Al igual que 89,16666666666667 es el número más cercano al número correcto después de redondear en decimal, 89,16666412353515625 es el número más cercano al número correcto después de redondear en binario. (Esto supone el uso del número de punto flotante de precisión simple IEEE, que tiene 24 bits (~7 dígitos) de precisión).

¿Realmente necesitas tantos decimales? Me imagino que sería satisfactorio redondear el resultado a uno o dos decimales.

over 4 years ago · Santiago Trujillo 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