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; }
输出: