Народ, кто-нибудь сталкивался с глюками сабжа, возникающими при расчете какого-либо более-менее сложного выражения?
Например,
dtmp1 = (Kp * error) + (dInt * int_error);
возникают глюки: портится значение в интежеровской переменной, причем, рассчитываемой ранее...
Лечится путем разбиения выражения на несколько меньших. Причем, приходится использовать промежуточную переменную dtmp2.
dtmp2 = dInt * int_error;
dtmp1 = Kp * error;
dtmp1 += dtmp2;
Причем, dtmp2 приходится делать глобальной. Если объявить ее локальной внутри той же функции, то глюки остаются.
Обе dtmp - это double.
В чем может быть причина такого поведения? Может это какой известный баг?