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 使用长双精度类型变量