鱼C论坛

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

检测输出各种类型的最值

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

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

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

x
今天在测试编译器各种类型的最值时,首先显示的数值大小以科学计数法输出。
  1. /***************************************************************************
  2. *文件名称:各个类型的最大最小值
  3. *文件标识:无
  4. *功能实现:检测输出各种类型的最值。
  5. *当前版本:VC++6.0
  6. *作    者:The Count of Monte Cristo
  7. *完成日期:2018年7月27日
  8. **************************************************************************/
  9. #include <iostream>
  10. #include <climits>
  11. #include <cfloat>
  12. using namespace std;

  13. int main()
  14. {
  15.     cout << "int 最大值:" << INT_MAX << "\n";
  16.     cout << "int 最小值:" << INT_MIN << "\n";
  17. //        cout.setf(ios_base::fixed, ios_base::floatfield);
  18.     cout << "float 最大值:" << FLT_MAX << "\n";
  19.     cout << "float 最小值:" << FLT_MIN << "\n";
  20.     cout << "double 最大值:" << DBL_MAX << "\n";
  21.     cout << "double 最小值:" << DBL_MIN << "\n";
  22.     cout << "long 最大值:" << LONG_MAX << "\n";
  23.     cout << "long 最小值:" << LONG_MIN << "\n";
  24.         return 0;
  25. }
复制代码

结果显示正确,但是我想以正常计数方式输出时,即在源程序加上cout.setf(ios_base::fixed, ios_base::floatfield);但是此时输出的结果很意外了。
0000.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-7-31 17:11:13 | 显示全部楼层
可能是因为double不能以ios_base::floatfield输出吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

嗯呐,这一点我也考虑了,亲,但是float型的最小值也错了呀。
小甲鱼最新课程 -> https://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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-11 03:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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