![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 26.08.2013
Сообщений: 187
|
![]()
Интересует такой вопрос, как проверить вещественное число, принадлежит ли оно промежутку, например есть число 5.2, проверить принадлежит ли оно промежутку 5.1 и 5.3. Кто знает?
Последний раз редактировалось Winexcel; 19.08.2014 в 18:34. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Так, например, если точность до одного знака после запятой
Код:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 26.08.2013
Сообщений: 187
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#4 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
![]() |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 21.04.2014
Сообщений: 115
|
![]()
http://www.softelectro.ru/ieee754.html
Если коротко, то никто не гарантирует соблюдения математических тождеств - число разрядов ограничено. Поэтому проверка на строгое равенство с вещественными числами - это плохой признак (оно имеет смысл в некоторых ситуациях, но там обычно человек уже понимает как это работает) =-) |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 19.08.2014 в 19:37. |
|
![]() |
![]() |
![]() |
#7 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Есть функция InRange из модуля Math, в нём вообще много всего для подобных задач, сам пользуюсь постоянно, во многих можно даже регулировать эпсилон для подобных сравнений, и будет надёжно, в отличие от велосипедов.
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#9 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Да, я удивлён, думал, что там используется CompareValue (которую я сам использую), и вот она-то учитывает и эпсилон и представление вещественных чисел.
Тогда можно свою InRange написать с CompareValue |
![]() |
![]() |
![]() |
#10 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]() Цитата:
P.S. Но для реальных, а не учебных задач сравнение двух вещественных переменных на строгое равенство это действительно полная безграмотность разработчика. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
range() | deduschka | PHP | 4 | 17.01.2014 23:23 |
задать range | arbitr.ru | Microsoft Office Excel | 2 | 09.11.2012 15:39 |
Range | WizarD.89 | Microsoft Office Excel | 7 | 29.04.2011 18:42 |
MS Word: Range | kate4ka | Общие вопросы Delphi | 1 | 19.02.2008 06:14 |
как перевести из integer в real(и обратно), и из real в string(и обратно) | Ga-sergey | Общие вопросы Delphi | 2 | 08.06.2007 21:13 |