c++中inta=2.8*6问a=多少,答案是16,不懂,求指导

2025年03月01日 12:12
有5个网友回答
网友(1):

2.8是double型,2.8*6编译器会当成double型乘法运算,得到的结果是double型,即为16.8,左边a为int型,把16.8赋值给a相当于进行隐式类型转换,直接去尾取整,结果就是16

网友(2):

2.8*6=16.8
因为变量a是整型,所以结果被向下取整。
16.8向下取整为16
所以a=16

网友(3):

int 型就是整型,计算的时候其他型的数强制转换为int型,转换规则是直接截取整数部分,小数全部去掉
楼主的相当于 int a=(int)(2.8*6)=(int)(16.8)=16

网友(4):

int a=2.8*6; 首先计算2.8*6.0(内部以double来保存计算结果,值为16.8),由于a定义为int整型数,因此,截取16.8的整数位赋值给a,即a=16

网友(5):

本来呢,2.8*6=16.8对吧,16.8是个float型的数,而你定义的a是int型的,所以结果是int型,也就是整型,所以答案是16.