我对C ++还是很陌生,我想知道是否可以将不同的数字类型加在一起,就像这样:
int num1=1;
float num2=1.0;
double num3=1.0;
您可以将这些变量加在一起吗?如果可以,那是什么类型
num1+num2+num3
是吗?
答案 0 :(得分:1)
答案是双重的。如果要测试,可以尝试auto ret = num1+num2+num3
并看到类型ret
具有。
答案 1 :(得分:1)
如前所述,答案将是double
。
编译器为此做的(没有优化)是
您需要谨慎处理这些转换。尽管您可以将float
(和int
)转换为double
,而不会损失任何精度,但是不能总是将int
转换为float
。
float
具有24位精度,这意味着它可以精确地表示所有整数,最大约为1680万,而signed int
可以高达大约20亿。有关详细信息,请参见here。
[我假设使用LP64 model]
答案 2 :(得分:-6)
是的...结果将浮动 1 + 1.0 + 1.0 = 3.0 自从双