Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.08.2008, 10:55
Аватар для artemavd
artemavd artemavd вне форума
Начинающий
 
Регистрация: 05.08.2008
Сообщения: 115
Репутация: 12
По умолчанию число

Есть такой код:
Код:
a1 := StrToInt(StringReplace(Edit1.Text,',','.',[]));
  b1 := StrToInt(StringReplace(Edit2.Text,',','.',[]));
  c1 := StrToInt(StringReplace(Edit3.Text,',','.',[]));
  d1 := StrToInt(StringReplace(Edit4.Text,',','.',[]));
    k1 := (a1 +  b1 +  c1 +  d1); //количество оценок
    if k1<>0 then f1 := (2 * a1 + 3 * b1 + 4 * c1 + 5 * d1)/k1;  //расчет
      str:=FloatToStrF(f1,ffFixed,1,1);
       if Pos(',',str)<>0 then str[Pos(',',str)]:='.';
         label7.Caption:=str;
В ответ выводит дробное число. Все как надо. Точка как разделитель. А есть какая нибудь функция, которая бы выводила в ответ также дробное число с точкой, но если данных нет, то выводила бы обычный ноль, т.е. «0», а не так «0.0» как это выводится в приведенном мной коде?)
Ответить с цитированием
  #2  
Старый 09.08.2008, 10:59
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Код:
if str='0.0' then str:='0';
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #3  
Старый 09.08.2008, 11:04
Аватар для artemavd
artemavd artemavd вне форума
Начинающий
 
Регистрация: 05.08.2008
Сообщения: 115
Репутация: 12
По умолчанию

А куда мне это в моем коде вписать?)
Ответить с цитированием
  #4  
Старый 09.08.2008, 11:07
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Перед
Код:
         label7.Caption:=str;
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #5  
Старый 09.08.2008, 11:29
Аватар для artemavd
artemavd artemavd вне форума
Начинающий
 
Регистрация: 05.08.2008
Сообщения: 115
Репутация: 12
По умолчанию

Это код, который складывает по вертикали ячейки в StringGrid:
Код:
for i:=1 to 25 do
   begin
      if (SG3.Cells[2,i]=' ') or (SG3.Cells[8,i]=' ') or (SG3.cells[14,i]=' ') or       (SG3.cells[20,i]=' ') then SG3.cells[26,i]:='0' else
        begin
          try
             summ:=(StrToFloat(SG3.Cells[2,i])+StrToFloat(SG3.cells[8,i])+
                         StrToFloat(SG3.cells[14,i])+
                         StrTofloat(SG3.cells[20,i]))/4;
            SG3.Cells[26,i]:=FloatToStrF(summ,ffFixed,1,1);
            if SG3.Cells[26,i]='0.0' then SG3.Cells[26,i]:='0';
          except
            SG3.Cells[26,i]:='0.0';

          end;
        end;
   end;
Но чтобы он работал, то необходимо на первой форме, откуда берутся данные, проставлять напротив тех фамилий где нет данных вручную нули, чтобы код приведенный выше работал. Как сделать, чтобы если нет данных то он не обращал внимания на это и работал?
Ответить с цитированием
  #6  
Старый 09.08.2008, 12:21
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Проверять что введено в нужной ячейке.
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #7  
Старый 09.08.2008, 12:23
Аватар для artemavd
artemavd artemavd вне форума
Начинающий
 
Регистрация: 05.08.2008
Сообщения: 115
Репутация: 12
По умолчанию

Цитата:
Сообщение от The Shadow
Проверять что введено в нужной ячейке.
А как это сделать в моем коде?)
Ответить с цитированием
  #8  
Старый 09.08.2008, 12:38
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Код:
if StringGrid.Cells[x, y] = '' then StringGrid.Cells[x, y]:='0';
тогда все пустые клетки сами заполнятся нулями
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #9  
Старый 09.08.2008, 14:00
Аватар для artemavd
artemavd artemavd вне форума
Начинающий
 
Регистрация: 05.08.2008
Сообщения: 115
Репутация: 12
По умолчанию

The Shadow, вы немного меня неправильно поняли). Я может не очень правильно написал). Виноват если что. Мне надо вот что: надо чтобы тот код который я привел выше работал так, что если у меня на первой форме нет данных (то есть пусто), то в таблице бы ничего не появлялось, а расчет производился бы только по известным данным. А то сейчас он не считает если не ввожу нули с основной формы. Программа выдает ошибку: " ' ' is not valid floating point value"( Вроде бы и try..except использовал, но все равно мне пока не помогло решить эту проблема эта конструкция((. Может у вас есть какие идеи?
Ответить с цитированием
  #10  
Старый 10.08.2008, 10:01
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Код:
if StringGrid.Cells[x, y] <> '' then
//Ячейка не пустая
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:46.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter