c语言中 5/2为什么会是0啊?

如题所述

第1个回答  2015-07-21
怎么会有两个,好像刚答过一个这样的。

这个涉及到的东西就比较复杂了。如果你是初学的话,建议不要深究。知道%d输出会是2就可以了。

其本质原理在于浮点数存储。
你用printf("%f",2);得到的值是一样的0.000000
当你用%f输出2的时候, 传给printf的值就是简单的2,占4个字节,其二进制值是
0x00000002
而浮点数存储的时候,分符号位,阶码和值,按照这个真值转成float时值就是0了。

而真正的浮点数2.0,其内存中的值是9d791f8
总之浮点数存储是很复杂的,初学者不建议接触本回答被网友采纳
第2个回答  2015-07-21
请使用 5.0/2
相似回答