Форум программистов, компьютерный форум 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++ Необходимо найти такие три точки, которые определяют треугольник Дано множество точек на плоскости . Необходимо найти такие три точки , которые определяют треугольник максимальной площади . http://www.cyberforum.ru/cpp/thread1310008.html
Реализация скалярного произведения двух векторов с оптиммизацией на CUDA C++
помагите реализовать операцию скалярного произведения двух векторов размерностью N на C++ с оптиммизацией на CUDA
Разработка под PSP C++
Народ, есть у кого компилятор под PSP (*.PBP)? "C"-подобного языка... Нужно хотя бы выводить на нее консоль типа "CMD".
C++ Открыть и закрыть файл exe через определенное время http://www.cyberforum.ru/cpp/thread1307108.html
Извините за тупой вопрос. Мне нужно просто открыть экзешник и со временем,например 5 секунд,чтобы сам просто закрылся. То есть просто открыть файл подождать закрыть. Если ли такая функция, типо открытие с таймером. например открыть C:\\Windows\\notepad.exe.:(
C++ Правильная стройка классов Здравствуйте! Пытаюсь реализовать MVC на С++. Застрял на начальном этапе - создание M, V, C. Вот структура проекта: Листинг: Model.h #pragma once подробнее

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

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

27.11.2014, 18:16. Просмотров 695. Ответов 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 должно хватать в любом случае?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru