鱼C论坛

 找回密码
 立即注册
查看: 1997|回复: 4

检测输出各种类型的最值

[复制链接]
发表于 2018-7-31 16:27:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天在测试编译器各种类型的最值时,首先显示的数值大小以科学计数法输出。
/***************************************************************************
*文件名称:各个类型的最大最小值
*文件标识:无
*功能实现:检测输出各种类型的最值。
*当前版本: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);但是此时输出的结果很意外了。
0000.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-7-31 17:11:13 | 显示全部楼层
可能是因为double不能以ios_base::floatfield输出吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-31 17:31:12 | 显示全部楼层
无符号整形 发表于 2018-7-31 17:11
可能是因为double不能以ios_base::floatfield输出吧。

嗯呐,这一点我也考虑了,亲,但是float型的最小值也错了呀。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 17:35:59 | 显示全部楼层
shiyideliutang 发表于 2018-7-31 17:31
嗯呐,这一点我也考虑了,亲,但是float型的最小值也错了呀。

stackoverflow上很多人说为什么我的FLT_MIN打印出来是0,那是是因为打印是没有注意精度的原因。如果输出%.100f,那就可以看到比较准确的值了。

点评

c++的话通过setf也可以设置。  发表于 2018-7-31 17:38
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-2 08:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表