|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.11.2007, 05:25 | #1 |
Регистрация: 07.11.2007
Сообщений: 9
|
при пустой ячейке выскакивает "is not a valid floating point value" ПОМОГИТЕ
ЗДРАВТСВУЙТЕ, ПАМАГИТЕ ПЛИЗ ламеру, НЕ могу сдать зачет по Delphi, а я в нем индюк. Есть таблица, в которой вводим факт 1,2,3,4 год. Таблица расчитывает удельный вес по каждому году плюс отклонения.
Если же не ввести в одну из ячеек число (т.е. ячейка будет пустая), то выскакивает ошибка "is not a valid floating point value". Я перерыл много форумов, но так и ничего не нашел..... (или скорей всего не понял, т.к. повторюсь, я индюк). Вот кусочек программы. Заранее Спасибо. procedure TForm1.BitBtn2Click(Sender: TObject); var Value: Double; ch: Currency; q : Integer; begin for i:=1 to StringGrid1.RowCount-2 do for q:=1 to 8 do If q mod 2 = 1 then form1.StringGrid1.Cells[q,kol+1]:=currToStr(strtocurr(form1.StringG rid1.Cells[q,kol+1])+strtocurr(form1.StringGrid1.Cells[q,i])); for i:=1 to StringGrid1.RowCount-2 do begin //1 год удельный вес StringGrid1.Cells[2,i]:=FloatToStr(100/strtofloat(StringGrid1.Cells[1,kol+1])*strtofloat(StringGrid1.Cells[1,i])); StringGrid1.Cells[2,kol+1]:=FloatToStr(strtofloat(StringGrid1 .Cells[2,kol+1])+strtofloat(StringGrid1.Cells[2,i])); //2 год удельный вес StringGrid1.Cells[4,i]:=FloatToStr(100/strtofloat(StringGrid1.Cells[3,kol+1])*strtofloat(StringGrid1.Cells[3,i])); StringGrid1.Cells[4,kol+1]:=FloatToStr(strtofloat(StringGrid1 .Cells[4,kol+1])+strtofloat(StringGrid1.Cells[4,i])); //3 год удельный вес StringGrid1.Cells[6,i]:=FloatToStr(100/strtofloat(StringGrid1.Cells[5,kol+1])*strtofloat(StringGrid1.Cells[5,i])); StringGrid1.Cells[6,kol+1]:=FloatToStr(strtofloat(StringGrid1 .Cells[6,kol+1])+strtofloat(StringGrid1.Cells[6,i])); //3-год удельный вес фактический StringGrid1.Cells[8,i]:=FloatToStr(100/strtofloat(StringGrid1.Cells[7,kol+1])*strtofloat(StringGrid1.Cells[7,i])); StringGrid1.Cells[8,kol+1]:=FloatToStr(strtofloat(StringGrid1 .Cells[8,kol+1])+strtofloat(StringGrid1.Cells[8,i])); //% выполнения плана StringGrid1.Cells[9,i]:=FloatToStr(strtofloat(StringGrid1 .Cells[5,i])/strtofloat(StringGrid1.Cells[7,i])*100); StringGrid1.Cells[9,kol+1]:=FloatToStr(strtofloat(StringGrid1 .Cells[5,kol+1])/strtofloat(StringGrid1.Cells[7,kol+1])*100); //1-года StringGrid1.Cells[10,i]:=FloatToStr(strtofloat(StringGrid1 .Cells[5,i])/strtofloat(StringGrid1.Cells[1,i])*100); StringGrid1.Cells[10,kol+1]:=FloatToStr(strtofloat(StringGrid1 .Cells[5,kol+1])/strtofloat(StringGrid1.Cells[1,kol+1])*100); //2-года StringGrid1.Cells[11,i]:=FloatToStr(strtofloat(StringGrid1 .Cells[5,i])/strtofloat(StringGrid1.Cells[3,i])*100); StringGrid1.Cells[11,kol+1]:=FloatToStr(strtofloat(StringGrid1 .Cells[5,kol+1])/strtofloat(StringGrid1.Cells[3,kol+1])*100); end; for i:=1 to 11 do begin for j:=1 to kol+1 do begin if (i mod 2 = 0) or (i=11) or (j=kol+1) or(i=9) then // округление только ячеек, где производится расчет form1.StringGrid1.Cells[i,j]:= okruglenie(StrTocurr(form1.StringGr id1.Cells[i,j]), 2); end; end; end; |
07.11.2007, 07:31 | #2 |
C# developer
Форумчанин
Регистрация: 03.10.2007
Сообщений: 393
|
он пишет что это не значение с плавающей точко
сделай обработку исключения или сделай так: Код:
I like WPF
Последний раз редактировалось SuperVisor; 07.11.2007 в 08:54. |
07.11.2007, 09:25 | #3 |
Регистрация: 07.11.2007
Сообщений: 9
|
Спасибо что откликнулся, влепил messagedlg, выводится нужное сообщение при пустой ячейки, но при нажатии на "OK" или "Cansel" опять вылезает "is not a valid floating point value" , т.е. проблема так и осталась
|
07.11.2007, 09:49 | #4 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
Дык.... Проверяем пуста ли ячейка.... пуста, значит вписываем туда ноль.
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
07.11.2007, 09:50 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Учти В ячейки Грида нужно прописывать только строки, приводить их к типу через FloatToStr или IntToStr. и какого типа у тебя результат функи okruglenie ?
I'm learning to live...
|
|
07.11.2007, 10:00 | #6 | ||
Регистрация: 07.11.2007
Сообщений: 9
|
Цитата:
Цитата:
Есть кнопка "Правка". SupVis Последний раз редактировалось SuperVisor; 07.11.2007 в 10:08. |
||
07.11.2007, 10:09 | #7 |
Павел Сергеевич
Форумчанин
Регистрация: 05.11.2006
Сообщений: 665
|
Код:
Познавая других, мы познаем себя.
С'est la vie... |
07.11.2007, 10:25 | #8 |
Регистрация: 07.11.2007
Сообщений: 9
|
После того как вбиваем значения и одну ячейку оставляем пустой, жмем кнопку вычисления (procedure TForm1.BitBtn2Click(Sender: TObject), вылетатет ошибка. Этот кусок кода ничем не помогает.
|
07.11.2007, 10:59 | #9 | |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Цитата:
Пустая ячейка учавствует в вычислениях?
Life is too short, play more...
Как правильно задавать вопросы |
|
08.11.2007, 06:33 | #10 |
Регистрация: 07.11.2007
Сообщений: 9
|
Не могу сказать в какой строке идет ошибка. все ячейки учавствуют в вычислениях. Если в ячеку поставить 0, то прога все считает норамльно, если же поставить ' ' (пустоту), то прога выдает "is not a valid floating point value". По сути надо что бы при расчете (нажатии кнопки) пустые ячейки автоматом заполнялись нулем.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует | skobets | Общие вопросы C/C++ | 2 | 03.06.2008 06:51 |
Invalid floating point operation | Skytis | Помощь студентам | 3 | 07.05.2008 12:16 |
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) | Dorvir | Microsoft Office Excel | 2 | 28.03.2008 10:03 |
Выскакивает "Limit"... | Filonenko | Свободное общение | 11 | 11.01.2008 11:41 |
Возникает ошибка Invalid floating point operation | Иринкаа | Помощь студентам | 3 | 29.11.2007 22:10 |