Buenas, resulta que yo definí el argumento una función como float, y cuando la uso en ves de pasarle un float le paso un double. adentro de la funcion imprimo en pantalla el resultado y me sale el numero con doble precisión, cuando yo esperaría que salga con la precisión de float¿alguien sabe a que se debe esto?
Lo que pasa es que C convierte automáticamente las variables que pasas por parámetros si es una conversión válida. Te dejo las conversiones en C válidas (no necesitan ser convertidas explícitamente):
(http://www.tutorialspoint.com/cprogramming/images/usual_arithmetic_conversion.png)