C语言从入门到精通(第6版)
上QQ阅读APP看书,第一时间看更新

3.5.2 实型变量

实型变量也称为浮点型变量,是用来存储实型数值的变量,其中实型数值由整数和小数两部分组成。实型变量根据精度可以分为单精度类型、双精度类型和长双精度类型3种。

1.单精度类型

单精度类型使用的关键字是float,它在内存中占4个字节,取值范围是−3.4×10−38~3.4×1038

定义一个单精度类型变量的方法是在变量前使用关键字float。例如:

    float fFloatStyle;  /*定义单精度类型变量fFloatStyle */
    fFloatStyle=3.14f;  /*为变量赋值3.14*/

【例3.5】存款一年后能取出多少钱(实例位置:资源包\TM\sl\03\05)

已知银行的年利率是2.95%,如果在银行中存入1000元,一年后可以取出多少钱?具体代码如下:(提示:总额=本金+年利率*本金)

    #include<stdio.h>
    int main()
    {
         float result;                  /*定义单精度类型变量*/
         result=1000+0.0295*1000;       /*计算一年后可取出的本金+利息总额*/
         printf("result=%f\n",result);  /*显示结果*/
         return 0;                      /*程序结束*/
    }

运行程序,显示效果如图3.9所示。

图3.9 使用单精度类型变量

2.双精度类型

双精度类型使用的关键字是double,它在内存中占8个字节,取值范围是−1.7×10−308~1.7×10308

定义一个双精度类型变量的方法是在变量前使用关键字double。例如:

    double dDoubleStyle;  /*定义双精度类型变量dDoubleStyle */
    dDoubleStyle=5.321;   /*为变量赋值5.321*/

【例3.6】计算圆柱体的粮仓体积和屯粮量(实例位置:资源包\TM\sl\03\06)

一个圆柱体的粮仓,底面直径为50米,高为15米,该粮仓体积为多少立方米?如果每立方米能屯粮896千克,该粮仓一共可存储多少千克粮食?具体代码如下:(提示:体积=3.14×半径2×高)

    #include<stdio.h>
    int main()
    {
         double d,h,v,res;                          /*定义4个双精度类型变量*/
         d=50;                                      /*对变量赋值,d表示直径,h表示高,v表示体积*/
         h=15;
         v=3.14*(d/2)*(d/2)*h;                  /*根据体积公式计算粮仓体积*/
         printf("该粮仓体积为%f立方米\n",v);         /*显示结果*/
         res=896*v;                                 /*计算屯粮量*/
         printf("该粮仓一共可储存%f千兊粮食\n",res); /*显示结果*/
         return 0;                                  /*程序结束*/
    }

运行程序,显示效果如图3.10所示。

图3.10 使用双精度类型变量

3.长双精度类型

长双精度类型使用的关键字是long double,它在内存中通常占10个字节,也可能是12或16个字节,具体与平台和编译器有关。取值范围是−1.2×10−4932~1.2×104932

定义一个双精度类型变量的方法是在变量前使用关键字long double。例如:

    long double fLongDouble;  /*定义长双精度类型变量fLongDouble */
    fLongDouble=46.257;       /*为变量赋值46.257*/

【例3.7】记录太阳和火星之间的距离(实例位置:资源包\TM\sl\03\07)

在本实例中,定义一个长双精度类型变量表示太阳和火星之间的距离,然后为其赋值22.794,最后通过输出语句将其显示在控制台。

    #include<stdio.h>
    int main()
    {
         long double fLongDouble;                       /*定义长双精度变量*/
         fLongDouble=22.794;                            /*为变量赋值*/
         printf("火星距太阳有%Lf亿千米\n",fLongDouble);  /*将变量值进行输出*/
         return 0;                                      /*程序结束*/
    }

运行程序,显示效果如图3.11所示。

图3.11 使用长双精度类型变量