SBJoker
молодец, правильно все объяснил.
добавлю вот что:
стек FPU 80битный, float 32бита, double - 64.
пока вычисления происходят без сохранения в память из стека FPU - точность 80битная (это правда зависит от флагов FPU). как только сохраняем значение в переменную - происходит отсечение (SBjoker об этом и сказал).
также стоит знать про машинный эпсилон (наименьшее представимое число с заданной разрядной сеткой). еще надо помнить, что формат IEEE 754 предусматривает повышение точности в области чисел в диапазоне 0..1 (хотя память мне тут может изменять, смотрите номрализованную и денормализованную форму числе с плавающей точкой).
так что не пугайтесь, когда видите, что 10.0 показывается как 9,999999. все так и зажумано