Я хотел бы понять, почему этот код:Понимание двойной точности операций в C
double r,d,rc;
scanf("%lf %lf", &r, &d);
rc = (r * r) - (d/2) * (d/2);
printf("%.2f\n", M_PI * rc);
возвращает более точный результат, чем этот (без rc
присваивания значения переменной):
double r,d,rc;
scanf("%lf %lf", &r, &d);
printf("%.2f\n", M_PI * (r * r) - (d/2) * (d/2));
Другой, связанный, вопрос: почему n * n
лучше, чем pow(n,2)
?
Затем прочитайте это - http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html –
Серьезно, эта статья должна автоматически появляться вместе с возможными дубликатами ... – StoryTeller
Результаты безусловно, точно одинаковы * точные *. Вопрос в том, какой из них более точен *. –