l valor de retorno de pow () se redondea hacia abajo si se asigna a un entero

Estoy usando lapow funciona en C y almacena el valor de retorno en un tipo entero. vea el fragmento de código a continuación:

for (i = 0; i < 5; i++){
    val = (int)pow(5, i);
    printf("%d, ", val);
}

aquíi yval son enteros y la salida es1, 5, 24, 124, 624. Creo que esto se debe a que un float 25 se trata como 24.99999 ... que se redondea a 24 en la asignación a un entero.

¿Cómo puedo pasar esto si todavía necesito almacenar el valor de retorno en un int?

Respuestas a la pregunta(4)

Su respuesta a la pregunta