Означает ли наличие одного типа данных с плавающей точкой (например, double
), что все операции m +, -, *,/,% и т.д. принимают двойные операнды?
Если история сложнее, есть ли ресурс, описывающий эти правила? Должен ли я не задавать такие вопросы и всегда явно отбрасывать int
до double
, когда результат уравнения равен double
. Вот некоторые уравнения, о которых я думаю. Я целенаправленно не компилировал и не запускал тогда в своей системе, поскольку это тот тип вещи, который может быть зависимым от компилятора.
int a(1), b(2), c(3);
double d(4.);
double result1 = a + b/d + c; // equal to 4 or to 4.5?
double result2 = (a + b)/d + c; // equal to 3 or to 3.75?
double result3 = a/b + d; // equal to 4 or to 4.5?