Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpPmCvMT 56 of 390 menu
◀ ▶

Разные типы в одной операции в C++

В одном действии могут стоять числа разных типов. Если рядом с int стоит double, целое на время действия становится double. Результат тоже получает тип double. Это называют расширением.

Сначала разделим два числа типа int. Оба целые, дробная часть отбрасывается. Смотрите пример:

int num1 = 5; int num2 = 2; std::cout << num1 / num2 << "\n"; // выведет 2

Теперь делитель сделаем дробным. Целое расширяется до дробного, и хвост сохраняется:

int num1 = 5; double num2 = 2.0; std::cout << num1 / num2 << "\n"; // выведет 2.5

Переменная num1 после деления остается int. Расширение живет только внутри действия.

Сложим целое 12 и дробь 12.5. Целое снова расширяется до double, сумма получается дробной:

int num1 = 12; double num2 = 12.5; std::cout << num1 + num2 << "\n"; // выведет 24.5

Умножим целое 3 на дробь 2.5. Правило то же: результат дробный:

int num1 = 3; double num2 = 2.5; std::cout << num1 * num2 << "\n"; // выведет 7.5

Если оба числа одного типа, расширять нечего. Сумма двух int остается целой.

Дан следующий код:

int num1 = 5; double num2 = 2.0; std::cout << num1 / num2 << "\n";

Скажите, что выйдет на экран.

Дан следующий код:

int num1 = 7; int num2 = 2; std::cout << num1 / num2 << "\n";

Скажите, что выйдет на экран.

Дан следующий код:

int num1 = 4; double num2 = 1.5; std::cout << num1 * num2 << "\n";

Скажите, что выйдет на экран.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить