double类型的最大整数是多少啊?

net2688 2008-12-06 01:41:34
书上写double表示范围是-1.7* 10的308次方 到 +1.7* 10的308次方, 怎么我录入 5555555555555555555555555555(20多个5时)赋值就出错了?
...全文
17241 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
toadzw 2008-12-07
  • 打赏
  • 举报
回复
#include<iostream>
#include<limits>
using namespace std;
int main()
{

double d = 10000000000000000000;//20位,如果要超过20位,必须用科学计数法
double d1 = 1e+30;
cout<<boolalpha<<(d1/100>d)<<endl;
return 0;
}
lizhaohu 2008-12-07
  • 打赏
  • 举报
回复
大数应该用科学计数法
0黄瓜0 2008-12-07
  • 打赏
  • 举报
回复
浮点数只有一小部分是连续的,太大和太小的数都是不连续的。
它可以表示1.7* 10的300次方,但不能准确表示1.7* 10的300次方加上1那个数。按科学计算法书写,double可以有15位有效数字,你输入20多个5,只能表示前15位,后面的相当于补0.
vbcpascal 2008-12-07
  • 打赏
  • 举报
回复
依赖于机器
blpluto 2008-12-07
  • 打赏
  • 举报
回复
依赖于系统
newsunet 2008-12-07
  • 打赏
  • 举报
回复
在limit.h中有定义,自己看下。
金日辰 2008-12-06
  • 打赏
  • 举报
回复
HOHO
herman~~ 2008-12-06
  • 打赏
  • 举报
回复
mark
freenux 2008-12-06
  • 打赏
  • 举报
回复
1.7E +/- 308 (15 digits)
MSDN上有。
太乙 2008-12-06
  • 打赏
  • 举报
回复


1.79769e+308
2.22507e-308
Press any key to continue



#include<iostream>
#include<limits>
using namespace std;
int main()
{

double d = 10000000000000000000;//20位,如果要超过20位,必须用科学计数法
double d1 = 1e+30;
cout<<boolalpha<<(d1/100>d)<<endl;
return 0;
}



太乙 2008-12-06
  • 打赏
  • 举报
回复
#include<iostream>
#include<limits>
using namespace std;
int main()
{
cout<<numeric_limits<double>::max()<<endl;
cout<<numeric_limits<double>::min()<<endl;
return 0;
}

65,183

社区成员

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

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