Да, сравните, например,
x = (a * b) / c;
с
x = a * (b / c);
Вот пример на C, который демонстрирует это:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
double a, b, c, x1, x2;
a = sqrt((double)rand());
b = sqrt((double)rand());
c = sqrt((double)rand());
x1 = (a * b) / c;
x2 = a * (b / c);
printf("a = %.20f\n", a);
printf("b = %.20f\n", b);
printf("c = %.20f\n", c);
printf("x1 = %.20f\n", x1);
printf("x2 = %.20f\n", x2);
printf("x1 - x2 = %.20f\n", x1 - x2);
return 0;
}
Для меня это дает следующие результаты:
$ gcc -O3 -Wall math.c -o math
$ ./math
a = 129.64181424216494065149
b = 16807.00000000000000000000
c = 40282.13093916457728482783
x1 = 54.09073256970189902404
x2 = 54.09073256970190612947
x1 - x2 = -0.00000000000000710543
$
(Core i7, gcc 4.0.1, Mac OS X 10.6)
Обратите внимание, что в общем случае вы можете получить разные результаты с любым данным выражением и разными ЦП, компилятором, переключателями компилятора, математикой и т. Д.