当我在整数类型中声明变量并在double类型中声明变量并且我得到它们的乘积时,您期望输出将在每种类型中,为什么? 例如:
int main(){
int number_1 ;
double number_2 ;
cout << number_1 * number_2 ;
cout << endl ;
return 0 ;
}
答案 0 :(得分:1)
结果的类型是double
。规则有点罗嗦,但是:
long double
,则另一个参数转换为long double
,结果类型为long double
double
,则另一个参数将转换为double
,结果类型为double
float
,则另一个参数将转换为float
,结果类型为float
如果不涉及浮点类型,则进入“整数提升”,这取决于参数大小和签名的相当详细的细节。此外,如果任一参数的类型是作用域枚举,则另一个参数必须具有相同的类型。这一切都有点太复杂了。
答案 1 :(得分:0)
它将是一个双倍的,因为C ++只是重载运算符以将产品放入更大的(具有更多位的数据)数据类型。
答案 2 :(得分:0)
如有疑问,请尝试一下。通常,较高的精度优先。因此,如果您有int
和double
,则double
的精度更高,因此结果将具有该格式。
int number_1 = 3;
double number_2 = 1.5;
std::cout << number_1 * number_2;
Output:
4.5
答案 3 :(得分:0)
这将是双倍的 因为在c ++中,当有多种数据类型时,它总是以最高精度数据类型打印答案。