有网友碰到这样的问题“c++中inta=2.8*6问a=多少,答案是16,不懂,求指导”。小编为您整理了以下解决方案,希望对您有帮助:
解决方案1:
2.8是double型,2.8*6编译器会当成double型乘法运算,得到的结果是double型,即为16.8,左边a为int型,把16.8赋值给a相当于进行隐式类型转换,直接去尾取整,结果就是16
解决方案2:
int 型就是整型,计算的时候其他型的数强制转换为int型,转换规则是直接截取整数部分,小数全部去掉
楼主的相当于 int a=(int)(2.8*6)=(int)(16.8)=16
解决方案3:
2.8*6=16.8
因为变量a是整型,所以结果被向下取整。
16.8向下取整为16
所以a=16
解决方案4:
本来呢,2.8*6=16.8对吧,16.8是个float型的数,而你定义的a是int型的,所以结果是int型,也就是整型,所以答案是16.
解决方案5:
int a=2.8*6; 首先计算2.8*6.0(内部以double来保存计算结果,值为16.8),由于a定义为int整型数,因此,截取16.8的整数位赋值给a,即a=16
Copyright © 2019- 99spj.com 版权所有 湘ICP备2022005869号-5
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务