Re[3]: Помогите мат. вычиления
От: Vorobiev Sergei Россия  
Дата: 23.06.04 11:56
Оценка: +1
Здравствуйте, Aloner, Вы писали:

A>и условие (ТОК == SCROLLBAR->POSITION * 0.01) несправедливо.

A>вышел из ситуации след. образом.

A>if (fabs(ТОК — double(SCROLLBAR->POSITION) * 0.01)<0.001)


A>Хотел просто разобраться, правильно или нет.


Правильно. Числа с плавающей точкой можно сравнивать только в эпсилон окрестности. Т.к. при вычислениях возникает погрешность, из-за того что кол-во знаков после запятой ограничено.
Лучше делать так.

#include <float.h>
...
if (fabs(ТОК - double(SCROLLBAR->POSITION) * 0.01) < DBL_EPSILON)
{
...
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.