1

Тема: Точность не целых типов.

Кто знает помогите с такой задачей: нужно увеличить точность типа double или float. У меня в проге иногда неправильно срабатывает такое условие (double+double == double+double). Нужно выводить с точностью 10^(-8), а я не знаю как это сделать. Конечно знаю что нужно писать printf("%.8lf"); Но считается всё равно не правильно.

Misha Panyavin [PML]

2

Re: Точность не целых типов.

Можно использовать так называемое сравнение с точностью. Выглядит оно примерно так:

#define eps 1e-9
...
if (abs(a-b)<eps) <do something>; // это аналогично if (a==b)
if (a+eps<b) <do something>; // это аналогично if (a<b)

Где eps - желаемая точность. Лучше брать на один-два порядка точнее, чем требуется в условии, но слишком маленький эпсилон брать тоже нельзя, потому что могут быть проблемы с количеством знаков после запятой у дабла.

3

Re: Точность не целых типов.

спс, очень помогло)))
я смотрю на мои вопросы только ты отвечаешь, спасибо большое

Misha Panyavin [PML]