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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2015, 19:51   #1
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию Погрешность типа double

Объясните мне пожалуйста, откуда берётся погрешность чисел типа double в следующих ситуациях:
1) ввод числа с клавиатуры - я в отладчике вижу погрешность начиная с 0,00000000000001;
2) любые операции с числами - даже самые банальные + и -.

Конкретный пример - я приложил текстовый файл, в котором находятся дробные числа, вычисленные по функции Y=X от -10 до 10 с шагом цикла 0,01.
Шаг вычисления значения X видно на первых 24 числах. Дальше - начиная с 25 и каждая 47 итерация добавляет погрешность, с которой я начинал.

Откуда берётся эта погрешность сама по себе ?
Вложения
Тип файла: txt result.txt (35.0 Кб, 172 просмотров)
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 11.11.2015, 20:00   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,706
По умолчанию

https://rsdn.ru/article/alg/float.xml
p51x вне форума Ответить с цитированием
Старый 11.11.2015, 20:07   #3
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Я с этим полностью согласен, но из того, что я прочитал - это касается только того, что не влазит в фиксированные рамки - в документации точность double описана как 15-16 знаков. Всё это по вашей же ссылке называется "потеря точности", более жёстко это касается точности чисел с периодичными дробями, или же каких нибудь констант типа e и pi.

Я эту тему создал, что бы попытаться узнать, откуда мне накручивают ПОГРЕШНОСТЬ в точных влезающих числах, что потери точности никак не касается.
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 11.11.2015, 20:12   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
касается точности чисел с периодичными дробями
1/10 в двоичном представлении тоже периодическая дробь, ни чем не лучше 1/3 в десятичном.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++, не выводит значение типа double Sultanova Помощь студентам 3 27.01.2013 17:06
TMaskEdit типа Double kashirin.p Общие вопросы Delphi 0 17.04.2012 17:23
динамический массив с переменными типа double ogyrcheg C# (си шарп) 4 25.02.2012 10:55
Проблема с выводом типа double ArmanPrestige Общие вопросы C/C++ 3 20.02.2012 03:58
in Формула типа String out результат типа Double Gypsy Общие вопросы Delphi 3 16.04.2010 10:21