检测输出各种类型的最值
今天在测试编译器各种类型的最值时,首先显示的数值大小以科学计数法输出。/***************************************************************************
*文件名称:各个类型的最大最小值
*文件标识:无
*功能实现:检测输出各种类型的最值。
*当前版本:VC++6.0
*作 者:The Count of Monte Cristo
*完成日期:2018年7月27日
**************************************************************************/
#include <iostream>
#include <climits>
#include <cfloat>
using namespace std;
int main()
{
cout << "int 最大值:" << INT_MAX << "\n";
cout << "int 最小值:" << INT_MIN << "\n";
// cout.setf(ios_base::fixed, ios_base::floatfield);
cout << "float 最大值:" << FLT_MAX << "\n";
cout << "float 最小值:" << FLT_MIN << "\n";
cout << "double 最大值:" << DBL_MAX << "\n";
cout << "double 最小值:" << DBL_MIN << "\n";
cout << "long 最大值:" << LONG_MAX << "\n";
cout << "long 最小值:" << LONG_MIN << "\n";
return 0;
}
结果显示正确,但是我想以正常计数方式输出时,即在源程序加上cout.setf(ios_base::fixed, ios_base::floatfield);但是此时输出的结果很意外了。
可能是因为double不能以ios_base::floatfield输出吧。 无符号整形 发表于 2018-7-31 17:11
可能是因为double不能以ios_base::floatfield输出吧。
嗯呐,这一点我也考虑了,亲,但是float型的最小值也错了呀。 shiyideliutang 发表于 2018-7-31 17:31
嗯呐,这一点我也考虑了,亲,但是float型的最小值也错了呀。
stackoverflow上很多人说为什么我的FLT_MIN打印出来是0,那是是因为打印是没有注意精度的原因。如果输出%.100f,那就可以看到比较准确的值了。
页:
[1]