int i=2;
float a;
a=1/i;
printf("%f",a);
为什么输出a等于0 ???
C语言里浮点数变量不能由整数除以整形数不来赋值,是为什么??
答案:5 悬赏:30 手机版
解决时间 2021-12-29 00:28
- 提问者网友:练爱
- 2021-12-28 01:52
最佳答案
- 五星知识达人网友:酒者煙囻
- 2021-12-28 02:53
这涉及到c中的类型转换问题:
1/i 中 1和i都是int 类型,他们的结果就是int类型,整型数相除直接舍去小数,结果是0;
然后赋值给了a,a就是0.000000
1/i 中 1和i都是int 类型,他们的结果就是int类型,整型数相除直接舍去小数,结果是0;
然后赋值给了a,a就是0.000000
全部回答
- 1楼网友:污到你湿
- 2021-12-28 04:38
是精度更高的浮点型
你之所以输出0是因为你用的%d,输出十进制格式,你应该用%f.
- 2楼网友:独行浪子会拥风
- 2021-12-28 04:13
你把1改成1.0试试。
- 3楼网友:千杯敬自由
- 2021-12-28 03:07
将i 改为float 试一试
- 4楼网友:一叶十三刺
- 2021-12-28 03:01
应当使用强制类型转换:a=(float)1/i;
否则用默认的类型转换:a=1; a/=i;
还可以(也是利用默认的):a=1.0/i;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯