Re[2]: Округление в С++
От: Adriano  
Дата: 16.12.10 10:38
Оценка:
Здравствуйте, telek1024, Вы писали:

T>А почему вы решили, что биты теряются на границе 0.5? И что значит "граница 0.5"?


Я плаваю в этой теме

T>Мне кажется, что для начала вам нужно почитать документацию о том, как хранятся вещественные числа в памяти. Начните отсюда: http://en.wikipedia.org/wiki/IEEE_754-1985


Я понимаю, что не все десятичные дроби можно представить в двоичной системе.

T>Или ещё можно написать std::setprecision(20) вместо std::setprecision(3)и посмотреть, что выведет программа.


Если установить точность — 4, то все правильно:
mid = 5.0325

good:
mid = 5.032500
bid = 5.132500
ask = 4.932500
bad:
mid = 5.032500
bid = 5.132500
ask = 4.932500


Как быть если нужна точность 3 знака после запятой?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.