Обёртка над плавающей точкой
От: Feonyf  
Дата: 16.11.10 20:28
Оценка:
Привет всем. Столкнулся с "приятными" моментами связанные с плавающей точкой.
Например:

double d1 = 0.3;
double d2 = 0.1+0.2;
ASSERT(d1 != d2);


и т.п.

Почитал форум, понял и вооружился функцией bool IsEqual(double x,double y);

Т.е. нужно сравнивать double при помощи этой функции. Однако хочется использовать оператор "==".

Вопрос: как использовать этот оператор если его использовать нельзя ?

Варианты ответов, которые пришли мне в голову:
1. перегрузить глобальный оператор (не пробовал и есть сомнение что это можно)
2. написать класс-обертку над double. Назвать его Double.
3. использовать библиотеку. (какую предложите?)

четвертый и далее ответы предлагается найти уважаемому All.
Моя строка построения буста:
.\bjam link=static threading=multi runtime-link=static -j %NUMBER_OF_PROCESSORS% --with-filesystem --with-thread --with-date_time address-model=64
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.