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

Как работает сравнение float/double (IEEE 754) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ C++ SDL 2.0 Портится ссылка на объект SDL_Renderer http://www.cyberforum.ru/cpp/thread1312298.html
Доброе утро. Как всё работает: Есть главный класс CApp с объектом SDL_Renderer*, который вызывает CApp::OnInit(), который вызывает AreaControl.OnLoad( SDL_Renderer*), который вызывает CTexture.OnLoad(SDL_Renderer*), который вызывает SDL_CreateTextureFromSurface(SDL_Renderer*), после чего CApp::OnInit() вызывает Entity.OnLoad(SDL_Renderer*), который вызывает ...
C++ Определить функцию, позволяющую распознавать наличие вещественных корней в квадратном уравнении Даны три квадратных уравнения ax^2+bx+с, bx^2+ax+с, cx^2+ax+b. Сколько из них имеют вещественные корни. (определить функцию, позволяющую распознавать наличие вещественных корней в квадратном уравнении.) http://www.cyberforum.ru/cpp/thread1311943.html
Скажите пожалуйста используется ли в этой программе полиморфизм? C++
Скажите пожалуйста используется ли в этой программе полиморфизм? Так и ладом не понял что такое полиморфизм #include <stdio.h> #include <conio.h> class chlenistonogie // класс, реализующий «тип членистоногие» { private: char *imya; char *priznak1;
C++ Необходимо найти такие три точки, которые определяют треугольник
Дано множество точек на плоскости . Необходимо найти такие три точки , которые определяют треугольник максимальной площади .
C++ Реализация скалярного произведения двух векторов с оптиммизацией на CUDA http://www.cyberforum.ru/cpp/thread1309043.html
помагите реализовать операцию скалярного произведения двух векторов размерностью N на C++ с оптиммизацией на CUDA
C++ Приделать к программе быструю сортировку и бинарный поиск Нужна ваша помощь. Есть консольная программа для ввода, вывода данных. Ко всему нужно этому нужно приделать быструю сортировку и бинарный поиск. Кому не лень, помогите пожалуйста. //--------------------------------------------------------------------------- #include <vcl.h> #include <windows.h> #include <iostream.h> #include <iomanip.h> #include <fstream.h> #include <stdio.h> #pragma... подробнее

Показать сообщение отдельно
xaser
0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 1

Как работает сравнение float/double (IEEE 754) - C++

27.11.2014, 18:16. Просмотров 633. Ответов 0
Метки (Все метки)

Возможно нубский вопрос.
C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    double a, b, x, res;
    bool f;
    a = 0.5;
    b = 0.3;
    res = a + b;
    x = 0.8;
    f = res == x;
    return 0;
}
Т.е тупо сравниваем сравниваем результат сложения 0.3+0.5 и 0.8

Вот так VS2013 показывает предствление всех переменных.

Посмотрел в этой программе точное представление и вот что увидел (после дефиса - число, восстановленное из double):
0.5 - 0.5
0.3 - 0,299999999999999988897769753748434595763683319091796875
0.8 - 0,8000000000000000444089209850062616169452667236328125

т.е сумма должна давать 0.799999999999999988897769753748434595763683319091796875

Вопрос - как получилось, что f и res равны 0.80000000000000004 ?

Добавлено через 3 часа 19 минут
Туплю...
Если положить 0.799999999999999988897769753748434595763683319091796875 в double, то как раз получится ~0.80000000000000004

Добавлено через 6 минут
Другой вопрос:
почему выводится 17 знаков после запятой? Тут написано, что точность 15.9 знаков, т.е 16 должно хватать в любом случае?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru