C语言中4和4.0有什么区别

这个程序求体积的时候,

  1. img

V等于4和V等于4.0的输出结果为什么不一样?

一个是整数,一个是浮点数
如果两个整数相除,是进行整除操作,比如1/4 = 0
如果其中一个不是整数相除,则正常相除,比如1/4.0 = 0.25

V=4/3*...其中4和3都是整型,因此4/3按整除计算得1
V=4.0/3*...其中4.0是double类型,3是整型,计算4.0/3时,编译器会把3提升为double类型,故4.0/3 = 4.0/3.0 = 1.3333...

你问的这个涉及到编译器了
当你用 4 /3,它认为都是整型,那么就按照整型计算,结果输出也是整型,也就是1
当你用4.0/3,编译器会选择高优先级的类型,也就是 double 类型计算,输出结果也是double、、、
相信你明白了。。。

这个问题涉及到算数转换,4.0是浮点型,
一个整形和一个浮点型一起运算的时候,整形会转化为浮点型