Форум программистов, компьютерный форум CyberForum.ru

Бред со счетом - C++

Восстановить пароль Регистрация
 
NewTech
 Аватар для NewTech
28 / 28 / 2
Регистрация: 06.11.2012
Сообщений: 168
27.05.2013, 03:00     Бред со счетом #1
С начало грешил на свой компилятор, но после попробовал на Visual Studio 2010 и тот же результат.

Какого черта в коде ниже, 264.088/11 НЕ ровняется 24.008 ? Может тут надо что-то добавить ?
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main()
{
   if(264.088/11==24.008)cout<<endl<<"YES, Mother *censored*";
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 03:00     Бред со счетом
Посмотрите здесь:

C++ не использовать do/while ? бред !
C++ бред в результате
Бред в крестиках ноликах C++
C++ какой то бред!
C++ Реализовать класс Account, что является банковским счетом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
27.05.2013, 03:03     Бред со счетом #2
NewTech, ага, нужно. Например, учитывать погрешность. Почитайте о представлении чисел с плавающей точкой в машине.
NewTech
 Аватар для NewTech
28 / 28 / 2
Регистрация: 06.11.2012
Сообщений: 168
27.05.2013, 03:23  [ТС]     Бред со счетом #3
Тогда вопрос, что нужно сделать, чтобы условие выполнилось, без каких либо округлений.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
27.05.2013, 03:38     Бред со счетом #4
Ну определится с точностью, которая Вам нужна. Например так:
C++
1
2
3
const double eps = 0.0001
if ( std::fabs( 264.088/11 - 24.008 ) <= eps )
...
NewTech
 Аватар для NewTech
28 / 28 / 2
Регистрация: 06.11.2012
Сообщений: 168
27.05.2013, 03:48  [ТС]     Бред со счетом #5
Разобрался, не много по извращался, и заработало.
Блин, теперь дофига много править нужно...

Добавлено через 1 минуту
Хм, почему то я твое сообщение в 3:43 еще не видел, ну да ладно, за помощь спасибо.

Добавлено через 1 минуту
P.S if((int)(load_buf[22]/11*1000)/1000.0==24.008)
Yandex
Объявления
27.05.2013, 03:48     Бред со счетом
Ответ Создать тему
Опции темы

Текущее время: 13:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru