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

Представление double в компе(сколько знаков он может считывать) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Microsoft visual express 2010. Скомплилированный заголовок http://www.cyberforum.ru/cpp-beginners/thread713929.html
Здравствуйте, товарищи =) Недавно стал изучать C++ по книге Прата С. Сейчас столкнулся с некоторым непониманием. Что значит "предварительно скомплилированный заголовок" при настройки консольного...
C++ Переместить все серии минимальной длины в начало массива, не нарушая порядок их следования Пожалуйста, нужна помощь c заданием: Задан целочисленный массив размером N. Переместить все серии минимальной длины в начало массива, не нарушая порядок их следования. Заранее спасибо... http://www.cyberforum.ru/cpp-beginners/thread713927.html
C++ Порекомендуйте компилятор
Начал изучать Си++ но немогу подобрать подходящий компилятор Порекомендуйте пожалуста понятный и легкий в обращении для новичка
Signal 11 (SIGSEGV) C++
То ли я дурак, то ли лыжи не едут. Во время тестирования, прога проходит 6 тестов, на 7-ом возникает Run-time error с доп.информацией Signal 11 (SIGSEGV). При этом, набор входных данных явно не...
C++ Как запихнуть в exe html файл и открыть его через нужный мне браузер? http://www.cyberforum.ru/cpp-beginners/thread713911.html
В общем есть у меня файл fff.html путем ShellExecute я открываю его через нужный мне браузер, например: ShellExecute(NULL,NULL,"iexplore.exe","C:\\fff.html",NULL,SW_RESTORE); Можно ли запихнуть...
C++ Структуры (описать) Добрый вечер. Прошу помощи по данной программе! Если вам не сложно можете еще закомментить ее работу чтобы я смог разобраться потом сам. Спасибо! Описать структуру для хранения следующей... подробнее

Показать сообщение отдельно
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
30.11.2012, 22:09  [ТС]
Мантисса стандартного double имеет размер 52+1 бит, может представлять числа от 1,0 до 1,9999999999999997779553950749686919152736663818359375 с минимальным шагом в 0,0000000000000002220446049250313080847263336181640625. То есть предыдущим представимым числом относительно максимума будет 1,999999999999999555910790149937383830547332763671875. Видите вот эту цифру после серии нулей? Она шестнадцатая. Которая изменилась с семёрки на пятёрку при вычитании. числа между 1,999999999999999555910790149937383830547332763671875 и 1,9999999999999997779553950749686919152736663818359375 double не в состоянии представить точно.
Я понял всё что процитировал выше, но вот становится непонятно со следующего момента:
Итого в среднем есть только 15 цифр (девятки) + условно та единица в начале. То есть в среднем точность (разрешающая способность) double это 15 цифр, если не считать ту единицу. Иногда точность можно условно считать равной 16: числа 1,9999999999999996 и 1,9999999999999997 double всё же может различить. А вот 1,9949999999999996 и 1,994999999999997 уже нет. Иногда может быть точность и меньше, если там того мега-хвоста набежит ошибка округления, то double не сможет представить точно одну последнюю цифру.
1). Про какую единицу речь идёт в самом начале? 2). Как вы поняли, что именно числа 1,9999999999999996 и 1,9999999999999997 double всё же может различить. А вот 1,9949999999999996 и 1,994999999999997 уже нет? Как мне это самому вычислить?
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru