单精度(float)和双精度(double)的区别

区别:1.所占内存空间,2.有效位数不同

1,所占内存空间:

float:4个字节(byte),32个比特位(bit) 数值范围:3.4E-38~3.4E+38

double:8个字节(byte),64个比特位(bit)数值范围:1.7E-308~1.7E+308

以下代码观察两者所占内存空间长度:

#include

int main()

{

printf("float:%d byte\n", sizeof(float));

printf("double:%d byte\n", sizeof(double));

return 0;

}

运行结果:

2,有效位数:

float:有效位数为6~7位

double:有效位数为15~16位

以下代码观察两者有效位数:

#include

int main()

{

float a;

double b;

a = 77777.777777;

b = 77777.77777777777;

printf("%f\n%f\n", a, b);

return 0;

}

运行结果:

a是单精度浮点型,有效位数只有7位。所以a的有效数字为77777.78(进行四舍五入)

b是双精度浮点型,有效位数为16位。但一般编译器规定小数后面最多保留6位数,其余四舍五入

Copyright © 2088 2008世界杯_2026世界杯举办地 - mwllb.com All Rights Reserved.
友情链接