关于c语言中double类型数字 最大可表示多大得数?知道是8字节64位二进制 可编程时打出30位长的为啥没错?

代码:
#include<stdio.h> //poj_1306 double形 长度???

main()
{
int M, N, i, j, temp;
double ans;

while(scanf("%d %d",&M,&N))
{
if(M==0 && N==0) break;
temp=N;
if(temp>M-N)
temp=M-N;
ans=1;
for(i=1,j=M; i<=temp; i++,j--)
ans *= (double)j/(double)i;
printf("%d things taken %d at a time is %.0f exactly.\n",M,N,ans);
}
} 输入 100 50 时最大
100 50
100 things taken 50 at a time is 100891344545564220000000000000 exactly.
为什吗?这样也行?就因为后面是0000?不解

c语言double(双精度浮点型)长度为8个字节,取值范围在+/-(1.7*10的-308次方~1.7*10的308次方)16位有效数字
最大可以表示1.7E308,很大个数字。追问

好像明白了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-16
确实是的..

不过这题明显不应该有浮点数来做....

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网