int a=1,b=2;printf("%f",a/b);结果为什么是0.000000,而不是0.500000?

来源:百度知道 编辑:UC知道 时间:2024/06/06 20:36:19
如题

整型除法就是1/2=0
3/2=1
都是这样的!

因为你a和b都是整形的,在做除法的时候被截断了,因为除数按理说应该是0.5对吗?但是你要把它放到一个整形中是不行的,则0.5倍截断成0了。
这样就可以解决问题:printf("%f",(float)a/b);试试看吧。

(int)(a/b)=0;
(float)((int)(a/b))=0