Tengo una función C que devuelve un tipo float
.Devolver un 1.0f me da 1065353216
Cuando la función devuelve 1.0f
, el receptor ve 1065353216
, no 1.0
.
Lo que quiero decir es lo siguiente:
float Function()
{
return 1.0f;
}
float value;
value = Function();
fprintf(stderr, "Printing 1.0f: %f", value);
Muestra:
1065353216
Pero no:
1.0
¿Estas seguro que este es el código que está compilando/pruebas? Proporcione más contexto. –
Curiosamente, 1065353216 es la representación entera de 1.0 (precisión simple IEEE). Tal vez su compilador o biblioteca estándar tiene un error, donde está interpretando% f como% d? – GameZelda
Parece que '% d' fue reemplazado mágicamente por'% f', por lo que aquí no hay nada que se vea mal ... – Simon