字体
第(5/6)页
关灯
   存书签 书架管理 返回目录
 2.1E5 (等于 2.1*105)

    3.7E-2 (等于 3.7*10-2)

    0.5E7 (等于 0.5*107)

    -2.8E-2 (等于-2.8*10-2)

    以下不是合法的实数:

    345 (无小数点)

    E7 (阶码标志 E 之前无数字)

    -5 (无阶码标志)

    53.-E3 (负号位置不对)

    2.7E  (无阶码)

    谭浩强      C 语言程序设计               2001 年 5 月 1 日

    标准C允许浮点数使用后缀。后缀为“f”或“F”即表示该数为浮点数。如 356f 和 356.

    是等价的。

    【例 3.5】说明了这种情况。

    main(){

    printf("%f\n ",356.);

    printf("%f\n ",356);

    printf("%f\n ",356f);

    }

    3.4.2 实型变量

    1. 实型数据在内存中的存放形式

    实型数据一般占 4 个字节(32 位)内存空间。按指数形式存储。实数 3.14159 在内存中

    的存放形式如下:

    +

    数符

    .314159

    小数部分

    1

    指数

    ?

    小数部分占的位(bit)数愈多,数的有效数字愈多,精度愈高。

    ? 指数部分占的位数愈多,则能表示的数值范围愈大。

    2. 实型变量的分类

    实型变量分为:单精度(float 型)、双精度(double 型)和长双精度(long double 型)

    三类。

    在 Turbo C 中单精度型占 4 个字节(32 位)内存空间,其数值范围为 3.4E-38~3.4E+38,

    只能提供七位有效数字。双精度型占 8 个字节(64 位)内存空间,其数值范围为 1.7E-308~

    1.7E+308,可提供 16 位有效数字。

    类型说明符 比特数(字节数) 有效数字

    数的范围

    float

    double

    long double

    32(4)

    64(8)

    128(16)

    6~7

    15~16

    18~19

    10-37~1038

    10-307~10308

    10-4931~104932

    实型变量定义的格式和书写规则与整型相同。

    例如:

    float x,y; (x,y 为单精度实型量)

    double a,b,c; (a,b,c 为双精度实型量)

    3. 实型数据的舍入误差

    由于实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的。如下例。

    【例 3.6】实型数据的舍入误差。

    main()

    {float a,b;

    a=123456.789e5;

    b=a+20

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

  
上一页 目录 下一页