Здравствуйте, Adriano, Вы писали:
A>Здравствуйте, telek1024, Вы писали:
T>>Или ещё можно написать std::setprecision(20) вместо std::setprecision(3)и посмотреть, что выведет программа.
A>Если установить точность — 4, то все правильно:
Так я сказал про 20

Поставьте 20 и поймёте, почему при 3 — неправильно, а при 4 правильно.
A>Как быть если нужна точность 3 знака после запятой?
Не использовать числа с плавающей точкой.
Я подозреваю, что у вас там деньги или котировки. Ни double, ни float для этого не подходят. Напишите свой класс, который будет точно хранить десятичные знаки или возьмите готовую реализацию. Пример запроса для поиска:
http://www.google.ru/search?q=C%2B%2B+BigDecimal