Saltar al contenido

¿Cómo convertir int a float en C?

Este equipo redactor ha pasado horas buscando para dar espuestas a tu pregunta, te compartimos la resolución y deseamos serte de mucha ayuda.

Solución:

La división de enteros se trunca, por lo que (50/100) da como resultado 0. Puedes lanzar a float (mejor double) o multiplicar con 100.0 (por double precisión, 100.0f por float precisión) primero,

double percentage;
// ...
percentage = 100.0*number/total;
// percentage = (double)number/total * 100;

o

float percentage;
// ...
percentage = (float)number/total * 100;
// percentage = 100.0f*number/total;

Dado que la aritmética de punto flotante no es asociativa, los resultados de 100.0*number/total y (double)number/total * 100 puede ser ligeramente diferente (lo mismo vale para float), pero es muy poco probable que influya en los dos primeros lugares después del punto decimal, por lo que probablemente no importe la forma que elija.

la división de enteros en C trunca el resultado por lo que 50/100 Te regalaré 0

Si desea obtener el resultado deseado, intente esto:

((float)number/total)*100

o

50.0/100

No, porque haces la expresión usando números enteros, entonces divides el entero 50 por el entero 100, lo que resulta en el entero 0. Escriba cast uno de ellos a un float y debería funcionar.

Reseñas y valoraciones del tutorial

Te invitamos a proteger nuestra misión poniendo un comentario o puntuándolo te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *