使用头文件cfloat中的符号常量获知浮点类型数据的表数范围
cfloat头文件包含了系统的浮点数的长度限制
头文件climits中的符号常量是获知整型数据的表数范围,并不能获取浮点类型数据的表数范围。
<climits>该头文件包含了系统的整数长度的限制,它已取代了头文件<limits.h>
<cfloat> 该头文件包含了系统的浮点数的长度限制,它以取代了头文件<float.h>
<cfloat> 头文件各字符常量的取值和含义
上图中在程序中常用到的定义浮点数大小的符号常量如下
FLT_MIN float类型最小的正数
FLT_MAX float类型最大的正数
DBL_MIN double类型最小的正数
DBL_MAX double类型最大的正数
FLT_MANT_DIG float类型的二进制有效数字位
DBL_MANT_DIG double类型的二进制有效数字位
FLT_DIG float类型的精度
DBL_DIG double类型的精度
FLT_MIN_EXP float型二进制浮点数的最小指数
FLT_MAX_EXP float型二进制浮点数的最大指数
DBL_MIN_EXP double型二进制浮点数的最小指数
DBL_MAX_EXP double型二进制浮点数的最大指数
FLT_MIN_10_EXP float型十进制浮点数的最小指数
FLT_MAX_10_EXP float型十进制浮点数的最大指数
DBL_MIN_10_EXP double型十进制浮点数的最小指数
DBL_MAX_10_EXP double型十进制浮点数的最大指数
#include <iostream>
#include <cfloat>
using namespace std;
int main()
{
cout << "Size:" << endl;
cout << "float is " << sizeof (float) << "bytes." << endl;
cout << "double is " << sizeof (double) << "bytes." << endl;
cout << "long double is " << sizeof (long double) << "bytes." << endl << endl;
cout << "Bits per byte = " << CHAR_BIT << endl << endl;
cout << "Maximum values:" << endl;
cout << "float: " << FLT_MAX << endl;
cout << "double: " << DBL_MAX << endl;
cout << "Minimum values:" << endl;
cout << "float: " << FLT_MIN << endl;
cout << "double: " << DBL_MIN << endl;
system("pause");
return 0;
}
运行结果
#include <iostream>
#include <cfloat>
using namespace std;
int main()
{
//浮点数在内存中的存储大小(字节)
cout << "浮点数在内存中的存储大小(字节):" << endl;
cout << "float is " << sizeof (float) << "bytes." << endl;
cout << "double is " << sizeof (double) << "bytes." << endl;
cout << "long double is " << sizeof (long double) << "bytes." << endl << endl;
cout << "Bits per byte = " << CHAR_BIT << endl << endl;
//浮点数的最大值
cout << "浮点数的最大值:" << endl;
cout << "float: " << FLT_MAX << endl;
cout << "double: " << DBL_MAX << endl;
//浮点数的最小值
cout << "浮点数的最小值:" << endl;
cout << "float: " << FLT_MIN << endl;
cout << "double: " << DBL_MIN << endl;
//浮点数的精度
cout << "浮点数的精度:" << endl;
cout << "float: " <<FLT_DIG << endl;
cout << "double: " << DBL_DIG << endl;
//浮点数的二进制有效数字位数(尾数所占位数,包括符号位)
cout << "浮点数的二进制有效数字位数(尾数所占位数,包括符号位):" << endl;
cout << "float: " <<FLT_MANT_DIG << endl;
cout << "double: " << DBL_MANT_DIG << endl;
//二进制浮点数的指数最大值
cout << "二进制浮点数的指数最大值 :" << endl;
cout << "float: " << FLT_MAX_EXP << endl;
cout << "double: " << DBL_MAX_EXP << endl;
//二进制浮点数的指数最小值
cout << "二进制浮点数的指数最小值:" << endl;
cout << "float: " << FLT_MIN_EXP << endl;
cout << "double: " << DBL_MIN_EXP << endl;
//十进制浮点数的指数最大值
cout << "十进制浮点数的指数最大值:" << endl;
cout << "float: " << FLT_MAX_10_EXP << endl;
cout << "double: " << DBL_MAX_10_EXP << endl;
//十进制浮点数的指数最小值
cout << "十进制浮点数的指数最小值:" << endl;
cout << "float: " << FLT_MIN_10_EXP << endl;
cout << "double: " << DBL_MIN_10_EXP << endl;
system("pause");
return 0;
}
运行结果