发现一个奇怪的问题,double的数据太长就不能输出。

看到机器就疯狂 2013-07-23 01:11:23


#include <iostream>
using namespace std;
int main()
{
double x=-1.79e308;
cout<<fixed<<x<<endl;
return 0;
}

运行后,啥也没输出,奇怪。
...全文
382 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxtwine2 2013-07-25
  • 打赏
  • 举报
回复
引用 8 楼 u010828523 的回复:
[quote=引用 7 楼 wxtwine2 的回复:] 要看机子的,测试打印出来 a.out -178999999999999996376899522973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000
什么机器?[/quote] IBM AIX 5.2
辰岡墨竹 2013-07-25
  • 打赏
  • 举报
回复
用科学计数法比较科学。因为double的精度问题,一般有效数字也就15位。后面的都是没用的数据,你打出来干什么呢?
大尾巴猫 2013-07-24
  • 打赏
  • 举报
回复
完全复制你的代码,用vs2010的命令行编译,intel e7400,4G内存,xp sp3 输出结果:
-178999999999999940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000
bedynamic 2013-07-24
  • 打赏
  • 举报
回复
出不来。。坐等!!!!!!!!!
  • 打赏
  • 举报
回复
引用 9 楼 adlay 的回复:
VC 2005 也可以输出. 难道你是那个经典的程序运行完后退出了没看到输出的问题么.... main 结束前加 system("pause");
都不是新手了,能出现这样的失误吗?
www_adintr_com 2013-07-24
  • 打赏
  • 举报
回复
VC 2005 也可以输出. 难道你是那个经典的程序运行完后退出了没看到输出的问题么.... main 结束前加 system("pause");
  • 打赏
  • 举报
回复
引用 7 楼 wxtwine2 的回复:
要看机子的,测试打印出来 a.out -178999999999999996376899522973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000
什么机器?
wxtwine2 2013-07-23
  • 打赏
  • 举报
回复
要看机子的,测试打印出来 a.out -178999999999999996376899522973000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000
水平不流 2013-07-23
  • 打赏
  • 举报
回复
打个酱油. C++的标准,跟C比,还是有差距的...
quickSort 2013-07-23
  • 打赏
  • 举报
回复
g++ 可以显示:
-1789999999999999963768995229726260470776376378192402199540275931773709616676592
91027329061638406108931437333529420935752785895444161234074984843178962619172326
29524426272214176638262229922362643847008815021898799795474786619818468662801396
6119769261150988554952970462018533787926725176560021258785656871583744.000000

Process returned 0 (0x0)   execution time : 0.026 s
Press any key to continue.
推测这是标准C++未定义的行为。。。 所以不用的编译器结果不一样
  • 打赏
  • 举报
回复
引用 3 楼 yingzijuntuan 的回复:
发现把fixed给去掉就行了,我对C++不太熟悉。。。等大神吧
我就要加fixed输出啊,你去它干啥,这是定点输出,我不用科学法输出。
yingzijuntuan 2013-07-23
  • 打赏
  • 举报
回复
发现把fixed给去掉就行了,我对C++不太熟悉。。。等大神吧
  • 打赏
  • 举报
回复
引用 1 楼 dahuaixiaohuai 的回复:
是的超出范围就不能输出了。
哥们,那为啥C语言可以输出呢?难道C++弱了?
一叶之舟 2013-07-23
  • 打赏
  • 举报
回复
是的超出范围就不能输出了。

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧