为什么输出最后的结果为0

为什么我将定义为ing的数值为-2的值以双精度浮点型输出的值为0

img

类型你写错了是double
你写int只存了整数部分小数没存进去。
做除法计算为0
在打印就成了0.0000

因为你的变量实际的类型是int,而你硬要以double的格式输出,编码当然乱套了
你需要温习int和double的二进制编码到底长什么样子,就能理解为什么一个int里存了5的值以double型print会是0
省流:
以%lf打印int可不是强制类型转换或者隐式类型转换,类型转换是指将int的值以double类型重新编码为二进制数据
而按不同的类型打印是直接把int里面4个字节的数据拿出来放到double类型的8个字节空间里,然后按照double的方式转成数字

img

img