2.2.3 浮点型数据类型
小数(实数)在计算机中称为浮点型数。在C++(www.cppentry.com)中,浮点型数数据类型有float(单精度浮点数)、double(双精度浮点数)和long double(长双精度浮点数,或称扩展精度浮点数)三种,其主要区别在于占用的字节数不同。
单精度浮点型(float)专指占用32位存储空间的单精度值。当用户需要小数部分并且对精度的要求不高时,单精度浮点型的变量是有用的。下面是一个声明单精度浮点型变量的例子。
- float a,b;
双精度型(double)占用64位的存储空间。当用户需要保持多次反复迭代的计算的精确性时,或在操作值很大的数字时,双精度型是最好的选择。例如,前面计算圆周长,声明的常量和变量均为双精度型,代码如下:
- double radius,area;
为了使读者更好地理解这两种数据类型的使用,下面给出一个具体示例。该示例分别定义单精度变量a和双精度变量b,分别为其赋初值,查看输出结果。在DEV-C++(www.cppentry.com)的集成开发环境中新建一个C++(www.cppentry.com)源文件,在其中输入如下源程序:- #include <iostream>
- using namespace std;
- int main()
- {
- float a; //定义浮点型变量
- double b; //定义浮点型变量
- a=3.1415926; //变量赋初值
- b=3.1415926;
- cout<<"a="<<a<<endl; //输出变量的值
- cout<<"b="<<b<<endl;
- system("pause");
- return 0;
- }
将上述程序输入到DEV-C++(www.cppentry.com)编辑器中,并通过选择【运行】|【编译运行】命令,或通过快捷键"F9"编译运行后,其结果如图2.10所示。
|
| (点击查看大图)图2.10 输出结果 |
|可以看出,不论定义的变量为单精度数据类型float还是双精度数据类型double,其输出的小数位都相同,这是因为没有设置输出精度,系统默认输出6位小数(包括小数点)。如果需要double型变量输出更多的小数位,则应设置精度。例如,通过函数setprecision(9)来设置输出9位小数,将上述程序段的第10行改写如下:- cout<<"b="<<setprecision(9)<<b<<endl;
通过该语句设置后,将能够输出变量b中9位小数。重新运行该程序段,其结果如图2.11所示。
|
| (点击查看大图)图2.11 输出结果 |
注意:如果在C++(www.cppentry.com)源程序中要使用setprecision函数,必须为其指定头文件iomanip。因此,在该程序段第一行需加上语句#include <iomanip>,否则将会出现编译错误。