Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2010, 19:07   #1
gregsoft
 
Регистрация: 13.09.2010
Сообщений: 3
Вопрос WTF

В Visual Studio 2005 C++ при сложении 0,8 + 0,1 получается число больше 0,9 и т. д.
Код:
float fH = 0.8;
fH += 0.1;
cout << fH;
if(0.9 == fH) cout << " = 0.9" << endl;
else
if(fH > 0.9) cout << " > 0.9" << endl;

на выходе:

0.9 > 0.9

Кто знает в чем причина. Плиз помогите.
gregsoft вне форума Ответить с цитированием
Старый 13.09.2010, 19:12   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://ltwood.wikidot.com/float
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.09.2010, 19:25   #3
gregsoft
 
Регистрация: 13.09.2010
Сообщений: 3
По умолчанию

Спасибо. Как говорится кто ясно мыслит тот ясно излагает
gregsoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц