float 是单精度浮点数,内存占4个字节,有效数字8位,表示范围是 -3.40E+38~3.40E+38。
double 是双精度浮点数,内存占8个字节,有效数字16位,表示范是-1.79E+308~-1.79E+308。
#include<stdio.h>
int main()
{
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
return 0;
}
输出:
关于处理速度:
两者处理速度不同,CPU处理float的速度比处理double快。double的精度高,double消耗内存是float的两倍。
关于使用:
如果不声明,小数默认是double类型,使用float时需要进行强转,或者在小数后加上f。
关于四舍五入:
double和float都是只对部分小数进行四舍五入
#include<stdio.h>
int main()
{
double a = 0.555;
float b = 0.555f;
printf("%.2lf %.2f\n", a, b);
a = 1.555;
b = 1.555f;
printf("%.2lf %.2f\n", a, b);
return 0;
}
输出: