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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2008, 11:49   #1
ivank
Новичок
Джуниор
 
Регистрация: 23.09.2008
Сообщений: 2
По умолчанию Странная проблема при сложении double. Помогите разобраться.

Пишу на C++ Builder 6, так как щас под рукой ничего получше нет...
Проблема такая
Код:
   for (double x=-10; x<10; x+=0.05) {
     out(x);
   }
выводит
Цитата:
-10
-9,95
-9,9
-9,85
-9,8
-9,75
-9,7
-9,65
-9,59999999999999
-9,54999999999999
-9,49999999999999
-9,44999999999999
-9,39999999999999
-9,34999999999999
-9,29999999999999
и т.д.

дак вот непонятно откуда берется -9,59999999999999 вместо -9,6

может кто сталкивался с такой проблемой... как ее решить?
ivank вне форума Ответить с цитированием
Старый 23.09.2008, 12:23   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Решить можно только округлением. Вещественные числа в своем внутреннем представлении немного не то, что мы от них хотим. Нет числа 0,05, а есть какое-то 0,05000000001, поэтому и набегает. Вы просто из интереса смените тип double на single, а потом на extended и сравните.
puporev вне форума Ответить с цитированием
Старый 23.09.2008, 13:04   #3
ivank
Новичок
Джуниор
 
Регистрация: 23.09.2008
Сообщений: 2
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Решить можно только округлением. Вещественные числа в своем внутреннем представлении немного не то, что мы от них хотим. Нет числа 0,05, а есть какое-то 0,05000000001, поэтому и набегает. Вы просто из интереса смените тип double на single, а потом на extended и сравните.
Спасибо... за ответ...
ivank вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертация типов: Double to Integer Noor Общие вопросы Delphi 4 26.09.2012 18:46
snmp+php странная проблема baarseek PHP 6 19.02.2009 14:02
диапазон double и погрешности вычислений ilyagoo Общие вопросы C/C++ 4 13.12.2007 17:29
Double/? Viteef Общие вопросы Delphi 6 25.07.2007 02:28
Символьный массив и double dima Общие вопросы C/C++ 5 15.12.2006 03:52