c语言求解 #include<stdio.h> void main() { float a,b; a=123456.789e5; b=a+20;
答案:4 悬赏:60
解决时间 2021-02-13 19:26
- 提问者网友:清羽墨安
- 2021-02-13 09:16
c语言求解 #include<stdio.h> void main() { float a,b; a=123456.789e5; b=a+20;
最佳答案
- 二级知识专家网友:时光不老我们不分离
- 2021-02-13 09:41
float的有效位数是7位后面的位数就随机了,double的有效位数是15,16位,你换double试试
全部回答
- 1楼网友:一起来看看吧
- 2021-02-13 13:10
越界溢出了,7后面都是随机数了
- 2楼网友:星星坠落
- 2021-02-13 12:35
这是因为float的结构式
1bit(符号位) 8bits(指数位) 23bits(尾数位)
所以存储有效数字的只有23位
2^23 = 8388608,只有七位,所以float只保存7位以内的数字
本题中就只保存到123456.7e5,其他的不再有效,故不会算出正确结果
如果将float改成double,就可以保存16位以内的有效数字,就会得到正确结果
- 3楼网友:你把微笑给了谁
- 2021-02-13 11:17
#include #include main () //一般是这样的。。 { float a,b,c,d,e,f,g; char t; scanf("%f %f&q乏偿催锻诎蹬挫拳旦哗uot;,&a,&
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯