| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > cppunit-1.12.1, CPPUNIT_ASSERT_EQUAL, double |
| Автор: lv151 28.1.2009, 11:47 |
| Сравнение переменных типа double проходит отрицательно. |
| Автор: Lazin 28.1.2009, 12:18 | ||||
мы какбэ должны догадаться что ты написал что-то вроде:
вместо
|
| Автор: Fazil6 28.1.2009, 12:20 | ||
| читай доки... для CPPUNIT_ASSERT_EQUAL
double никто здравомыслящий не сравнивает оператором == смотри CPPUNIT_ASSERT_DOUBLES_EQUAL |
| Автор: lv151 28.1.2009, 16:28 |
Можно подробнее? Погулил, ничего толкового не нашёл по данному вопросу. |
| Автор: Static 28.1.2009, 16:41 |
| имеется в виду, что число, которое ты видишь как 3.456 на самом деле представлено "внутри" как 3.45578986857 например. Причем два разных 3.456 могут быть по-разному представлены, что значит == не сработает. В таком случае сравнивают разность двух чисел с каким-либо заранее заданным е - точностью. Например с 0,000001. Т.е. если (х-у)<e - считаем, что х==у дает true. |
| Автор: lv151 28.1.2009, 16:43 |
| Так как тогда сравнивать(abs)? |
| Автор: Static 28.1.2009, 16:47 | ||
| всмысле? псевдокод:
|
| Автор: lv151 28.1.2009, 16:50 | ||
да
Это единственный способ сравнения? |