por: IncludeHelp, de 23 de-ENE-2017
Considere la siguiente declaración
float x=10.23;
Aquí, 10,23 no es un valor float Es double tipo, que está convirtiendo en float tipo implícitamente while asignación en x .
vamos a demostrarlo, considere la siguiente declaración
printf("%d",sizeof(10.23));
Esta declaración será return 8 , while float toma 4 bytes en la memoria. Por lo tanto, es double porque double tarda 8 bytes en la memoria.
forma correcta de float literal
Considere la siguiente declaración
float x=10.23f;
Aquí, 10.23f es un float literal representación correcta y if imprimimos su tamaño será 4 .
Considere el siguiente programa; aquí estamos imprimiendo tamaño de 10,23 y 10.23f.
#include <stdio.h>
int main()
{
printf("size of double literal: %dn",sizeof(10.23));
printf("size of float literal: %dn",sizeof(10.23f));
return 0;
}
salida
size of double literal: 8
size of float literal: 4