Почему результат этого явного приведения отличается от неявного?
#include <stdio.h>
double a;
double b;
double c;
long d;
double e;
int main() {
a = 1.0;
b = 2.0;
c = .1;
d = (b - a + c) / c;
printf("%li\n", d); // 10
e = (b - a + c) / c;
d = (long) e;
printf("%li\n", d); // 11
}
Если я делаю d = (long) ((b - a + c)/c); Я также получаю 10. Почему назначение двойника имеет значение?