怎么看以个数是单精度还是双精度

来源:百度知道 编辑:UC知道 时间:2024/09/22 09:48:20

输出它的所占大小

设变量名为a

sizeof(a);

4->float
8->double

如一楼所说,用sizeof();

1. 实型变量的分类
实型变量分为:单精度(float型)、双精度(double型)和长双精度(long double型)三类。
在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。
类型说明符 比特数(字节数) 有效数字 数的范围
float 32(4) 6~7 10-37~1038
double 64(8) 15~16 10-307~10308
long double 128(16) 18~19 10-4931~104932
实型变量定义的格式和书写规则与整型相同。
例如:
float x,y; (x,y为单精度实型量)
double a,b,c; (a,b,c为双精度实型量)
2. 实型数据的舍入误差
由于实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的。如下例。
【例】实型数据的舍入误差。
main()
{float a,b;
a=123456.789e5;
b=a+20
printf("%f\n",a);
printf("%f\n",b);
}

注意:1.0/3*3的结果并不等于1。
【例】
main()
{
float a;
double b;
a=33333.33333;
b=33333.33333333333333;
printf("%f\n%f\n",a,b);