Тип отношения двух целых - PullRequest
       10

Тип отношения двух целых

1 голос
/ 07 сентября 2011

Рассмотрим следующее:

int num = 5;
double total = num / 2;

Правильно ли говорить, что частное num / 2 не является double, потому что вам нужно проанализировать int до double?

1 Ответ

9 голосов
/ 07 сентября 2011

Технический ответ заключается в том, что оператор / выдает целое число при задании двух целых чисел.Это вычисление выполняется независимо от присвоения переменной double.

На самом деле do получает двойное значение в переменной total, но оно равно 2,0, а не 2,5.При инициализации целое число 2 преобразуется в 2.0.

Ваши варианты, если вы хотите 2.5:

double total = num / 2.0;

double total = (double)num / 2;

Короче говоря, это не проблема синтаксического анализа, а одна изC ++ оператор семантики.Надеюсь, что это имело смысл.

...