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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2010, 12:37   #1
Oksanator
 
Регистрация: 02.01.2010
Сообщений: 5
Вопрос Дробные числа

Не могу сообразить,но почему-то при значении от 12.2 до 10 выдается 70,хотя должно быть 1. А если <=9,9 то все пишет правильно.В чем ошибка?

Код:
If edit129.Text<=floattostr(12.2)then edit137.Text:=inttostr(1);
If edit129.Text<=floattostr (9.9)then edit137.Text:=inttostr(26);
If edit129.Text<=floattostr (7.6)then edit137.Text:=inttostr(70);

Последний раз редактировалось Oksanator; 03.01.2010 в 12:40.
Oksanator вне форума Ответить с цитированием
Старый 03.01.2010, 13:23   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

А попробуйте, вот так:
Код:
If strtofloat(edit129.Text)<=12.2 then edit137.Text:=inttostr(1);
If strtofloat(edit129.Text)<=9.9 then edit137.Text:=inttostr(26);
If strtofloat(edit129.Text)<=7.6 then edit137.Text:=inttostr(70);
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 03.01.2010, 14:04   #3
Oksanator
 
Регистрация: 02.01.2010
Сообщений: 5
По умолчанию

не помогло
Oksanator вне форума Ответить с цитированием
Старый 03.01.2010, 14:23   #4
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Код:
  If (StrToFloat(Edit129.Text) > 0.0) and (StrToFloat(Edit129.Text) <= 7.6) then
      Edit137.Text := IntToStr(70);
  If (StrToFloat(Edit129.Text) > 7.6) and (StrToFloat(Edit129.Text) <= 9.9) then
      Edit137.Text := IntToStr(26);
  If (StrToFloat(Edit129.Text) > 9.9) and (StrToFloat(Edit129.Text) <= 12.2) then
      Edit137.Text := IntToStr(1);

Последний раз редактировалось profi; 03.01.2010 в 14:31.
profi вне форума Ответить с цитированием
Старый 03.01.2010, 14:33   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Промах. Удалите.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 05.01.2010, 12:59   #6
Oksanator
 
Регистрация: 02.01.2010
Сообщений: 5
По умолчанию

Методом научного тыка решила проблему,убрав знак меньше в двух последних строчках:
Код:
If edit129.Text<=floattostr(12.2)then edit137.Text:=inttostr(1);
If edit129.Text=floattostr (9.9)then edit137.Text:=inttostr(26);
If edit129.Text=floattostr (7.6)then edit137.Text:=inttostr(70);
Как ни странно,все заработало.Но почему именно такой вариант машина поняла,для меня загадка О__о .....
Oksanator вне форума Ответить с цитированием
Старый 05.01.2010, 14:14   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Здесь проблема была в том, что одно условие перекрывало другое.
Example:
Код:
if X<5 Then Y:=1;
If X<10 Then Y:=2;
Здесь что-ни вводите Y будет равен 2-м. Выход - либо устанавливать рамки > и <= либо делать выход exit-ом.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 05.01.2010, 19:11   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
edit129.Text<=floattostr
поразительный факт, но
'2'<'1' =FALSE и
'2'<'12' =FALSE

сравнение строк, это не сравнение чисел
правильнее будет if strtofloat(edit.text)<=7 then
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дробные числа Vitalik55 БД в Delphi 3 10.06.2009 23:08
Дробные на полусумму PbIska Помощь студентам 4 20.05.2009 17:40
Дробные в DBGrid Veiron Общие вопросы Delphi 4 22.12.2008 16:53
Дробные числа EAAlien Общие вопросы Delphi 8 13.05.2008 19:09
подскажите какая процедура округляет дробные числа , а не откидывает дробную часть, к ***СкаЙ*** Помощь студентам 5 13.06.2007 16:03