浮点类型

C标准规定的浮点型有float、 double、 long double,和整数类型一样,既没有规定每种类型占多少字节,也没有规定采用哪种表示形式。浮点数的实现在各种平台上差异很大,有的处理器有浮点运算单元(称为硬件实现),有的处理器没有,只能做整数运算,那么就要用整数运算来模拟浮点运算(称为软件实现)。

浮点类型除了常规的小数写法之外,还可以采用科学计数法法表示。尾数和指数之间用e或E隔开,例如314e-2表示314×10-2。如果尾数的小数点左边或右边没有数字则表示这一部分为零,例如3.e-1,.987等等。

浮点数也可以加一个后缀,例如3.14f、 .01L,浮点数的后缀和类型之间的对应关系比较简单,没有后缀的浮点数常量是double型的,有后缀f或F的浮点数常量是float型的,有后缀l或L的浮点数常量是long double型的。

下表列出了关于标准浮点类型的存储大小、值范围和精度的细节:

类型

存储大小

精度

float

4 字节

6 位小数

double

8 字节

15 位小数

long double

16 字节

19 位小数

头文件 float.h 定义了宏,在程序中可以使用这些值和其他有关实数二进制表示的细节。下面的实例将输出浮点类型占用的存储空间以及它的范围值: 

#include <stdio.h>
#include <float.h>
int main()

{

   printf("float 存储最大字节数 : %lu \n", sizeof(float));
   printf("float 最小值: %E\n", FLT_MIN );
   printf("float 最大值: %E\n", FLT_MAX );
   printf("精度值: %d\n", FLT_DIG );  

   return 0;

}
posted @ 2018-04-07 10:31  刘-皇叔  阅读(1926)  评论(0)    收藏  举报