|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.10.2013, 21:16 | #1 |
Новичок
Джуниор
Регистрация: 01.10.2013
Сообщений: 2
|
Оператор for
Есть такой код:
Код:
Последний раз редактировалось Stilet; 01.10.2013 в 21:36. |
01.10.2013, 21:45 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
P.S. А интересно почему действительно <= не срабатывает на равенство. Неужели из-за костылей проца при работе с вещественными?
I'm learning to live...
|
|
01.10.2013, 22:23 | #3 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
см. пост (особенно статью Антона Григорьева рекомендую...) Не знаю, конечно, как там в C, но, думаю, что общая логика машинного представления вещественных чисел одинакова хоть для Delphi, хоть для C! |
|
01.10.2013, 22:31 | #4 | ||
Новичок
Джуниор
Регистрация: 01.10.2013
Сообщений: 2
|
Цитата:
Цитата:
Последний раз редактировалось Stilet; 02.10.2013 в 09:36. |
||
01.10.2013, 23:56 | #5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
А я не могу прочитать статью. Пишет, что "404 - Компонент не найден"
Про "Загадки округления" интересно написано. Нужно будет прочитать. Спасибо за ссылку! Последний раз редактировалось 8Observer8; 01.10.2013 в 23:59. |
02.10.2013, 08:48 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ваша правда. умерла ссылочка...
но статью легко найти поиском. Более того, доступен оригинал статьи на сайте королевства Дельфи: Антон Григорьев. "Неочевидные особенности вещественных чисел" |
02.10.2013, 12:17 | #7 | |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
вещественный числа вообще нельзя никогда сравнивать на равенство оператором == (а также <=, >=).
Вещественные числа всегда сравниваются с какой-то погрешностью. Ну или вотъ: http://www.cplusplus.com/reference/cmath/islessequal/ но я этой штукой ниразу не пользовался, и не знаю как оно работает ) Там есть примечание: Цитата:
|
|
02.10.2013, 13:50 | #8 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
Почему то в литературе особо акцент на ото не делается. Была подобная проблема ни один день на это убил. Кто же знал что float нельзя сравнить с абсолютной точностью.
Пришлось использовать int а в теле цикла привел к float и умножил на нужный коэффициент. |
02.10.2013, 15:09 | #9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Да и если честно она не такая уж и назойливая, т.е. она есть но ее в 100% случаев можно обойти описав код по другому.
I'm learning to live...
|
|
02.10.2013, 19:38 | #10 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
Да про что тут писать то?
Если уж очень хочется почитать, ищи в книжках по теории автоматов (вроде бы в етих разделах описываются разные варианты хранения чисел в ЭВМ). Вот другой пример: http://ideone.com/PRnt8Y Код:
Ошибки по типу той, что у ТС хрен выловишь. У меня такие проблемы возникали при работе с графическими сценами (потому что всякие опенглы хранят координаты объектов в дробных числах) и когда ты захочешь узнать лежат ли 2 объекта друг под другом начинаешь использовать всякие штуки типы qFuzzyCompare (если бы проблемы можно было всегда избежать - таких костылей бы не существовало впринципе). |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Условный оператор,оператор цикла и массив | Klark73 | Microsoft Office Excel | 1 | 19.12.2011 17:09 |
Оператор выбора или условный оператор[Перенесено из JavaSE] | merhaba1992 | Помощь студентам | 1 | 20.01.2011 17:06 |
Условный оператор. Оператор выбора. Pascal | Сержuk | Помощь студентам | 4 | 17.11.2010 12:50 |
Вычислить используя, оператор цикла for и оператор безусловного пе | Knubbe | Помощь студентам | 1 | 18.12.2009 10:24 |