ewertгде-то в промежутке вклинивается обычный восьмибайтовый тип (ну, скажем, в эпсилоне)
Да,
0.00000001 по стандарту C++ имеет тип обычного
double, но вычисления, по-моему, все равно должны производиться в 80 битах
формате более "мощного" операнда. Можно порекомендовать ТС исправить
0.00000001 на
0.00000001L (а еще лучше на
1e-8L, для большей читабельности). А также заглянуть в настройки компилятора.
И перестать использовать макросы в качестве констант!iifatlong double — таки 64, насколько мне известно.
В большинстве случаев это не так.