怎么会有两个,好像刚答过一个这样的。
这个涉及到的东西就比较复杂了。如果你是初学的话,建议不要深究。知道%d输出会是2就可以了。
其本质原理在于
浮点数存储。
你用printf("%f",2);得到的值是一样的0.000000
当你用%f输出2的时候, 传给printf的值就是简单的2,占4个字节,其二进制值是
0x00000002
而浮点数存储的时候,分符号位,阶码和值,按照这个真值转成float时值就是0了。
而真正的浮点数2.0,其内存中的值是9d791f8
总之浮点数存储是很复杂的,初学者不建议接触
本回答被网友采纳