/ / Який тип даних виводиться, якщо я отримую добуток цілого і подвійного? [закрито] - c ++

Який тип даних виведення, якщо я отримую продукт цілого і подвійний? [closed] - c ++

Коли я оголошую змінну у цілочисельному типі та змінну у подвійному типі, і я отримую їх добуток, що ви очікуєте, буде вихід у кожному типі та чому? приклад:

int main(){
int number_1 ;
double number_2 ;
cout << number_1 * number_2 ;
cout << endl ;
return 0 ;
}

Відповіді:

0 для відповіді № 1

Якщо ви сумніваєтесь, спробуйте. Загалом, вища точність матиме пріоритет. Тож якщо у вас є int і a double, the double є більш високою точністю, тому результат матиме таку форму.

int number_1 = 3;
double number_2  = 1.5;
std::cout << number_1 * number_2;

Output:
4.5

1 для відповіді № 2

Тип результату double. Правила трохи делікатні, але:

  • якщо є будь -який із типів long double, інший аргумент перетворюється на long double і тип результату такий long double
  • в іншому випадку, якщо будь -який із типів є double, інший аргумент перетворюється на double і тип результату такий double
  • в іншому випадку, якщо будь -який із типів є float, інший аргумент перетворюється на float і тип результату такий float

Якщо немає типу плаваючої крапки, випотрапити до "цілочисельних акцій", які залежать від досить інтимних деталей розміру та підписаності аргументів. Крім того, якщо тип будь -якого аргументу є перерахуванням за обсягом, інший аргумент повинен мати той самий тип. Тут все надто складно, щоб вирішувати це питання.


0 для відповіді № 3

Це буде подвійне значення, оскільки C ++ просто перевантажує оператора, щоб помістити продукт у більший (той, у якому більше бітів) тип даних.


0 для відповіді № 4

Він буде подвійним Тому що в с ++, коли є кілька типів даних, він завжди друкує відповідь у найточнішому типі даних.