Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

про тип Single [D7, WinXP]


Dwarf ©   (2005-02-07 00:45:00) 

привет всем!есть такой небольшой вопрос..если у меня 2 переменные типа single  могу я с ними производить математические действия?
или мне надо их фо что-то перевести..


Dwarf   (2005-02-07 02:30:00) [1]

[censored]!!!!!точно!только что перебрал таблицу со значениями ,которые попадают в прогу...оказываеться ,вместо одной цифры стоит буква!убрал и всё работет!всем спасибо за помощь таким ботам как я!


GanibalLector   (2005-02-07 02:28:00) [2]

И еще,делаешь ли ты для  x1,y1  то,что ЮЗ в [11] запостил?


GanibalLector   (2005-02-07 02:26:00) [3]

Код,который в [16] работает.
Предлагаю тебе сделать RowCount  равным 5.Заполнить поля вручную и проверить.И увидишь,что все уже давным давно работает.

З.Ы.Слышь,а может у тя пустые Cells-ы есть?


Dwarf   (2005-02-07 02:21:00) [4]

GanibalLector ©   (07.02.05 02:15) [16]
А ты уверен,что у тебя  119 полей заполнено?

да,заполняеться 119 полей...точно..
мне кажеться что я с типами переменных на мутил..не могу понять вроде бы ничего сложного нету...а задача такая,
взять значение из строк разных таблиц,подставить в формулу,и результат записать в ячейку другой таблицы...и всё это в цикле от1 до 119...


GanibalLector   (2005-02-07 02:15:00) [5]


var   x4,y4,dirA3:Single;
     i:integer;
begin
StringGrid1.Cells[1,1]:='0.25';//для примера
StringGrid1.Cells[2,1]:='0,25';//для примера

for i:=1 to StringGrid1.RowCount-1do begin

x4 := StrToFloat(
StringReplace(
  StringReplace(StringGrid1.Cells[1,i], '.', DecimalSeparator, []),
    ',', DecimalSeparator, []));
y4:=StrToFloat(
StringReplace(
  StringReplace(StringGrid1.Cells[2,i], '.', DecimalSeparator, []),
    ',', DecimalSeparator, []));
 // x1,y1 = ???
dirA3:=(arctan((x4-1)/(y4-1)));
StringGrid1.Cells[3,i]:=FloatToStr(dirA3);
end;


А ты уверен,что у тебя  119 полей заполнено? Except бы тут не помешал!!!


Dwarf   (2005-02-07 02:15:00) [6]

всё равно выскакивает ошибка [12]


Dwarf   (2005-02-07 02:06:00) [7]

с запятой вместо точки я уже разобрался...теперь все перем. принимают значение типа :111,232


Fenik   (2005-02-07 02:04:00) [8]

>Dwarf  (07.02.05 02:02) [12]

А ответ [11] у тебя в браузере не отображается? :)


Dwarf   (2005-02-07 02:02:00) [9]

вот побольше код..
for i:=1 to 119 do begin
x4:=strtofloat(gridob.Cells[1,i]);
y4:=strtofloat(gridob.Cells[2,i]);
dirA3:=(arctan((x4-x1)/(y4-y1)));
gridrez.Cells[3,i]:=FloatToStr(dirA3);
end;
всё равно вылезает ошибка : invalid floating.....дальше не помню..я только начал с этим работать никак не могу вникнуть...


Юрий Зотов   (2005-02-07 01:37:00) [10]


X1 := StrToFloat(
 StringReplace(
   StringReplace(Edit1.Text, '.', DecimalSeparator, []),
     ',', DecimalSeparator, []));


Dwarf   (2005-02-07 01:29:00) [11]

>Юрий Зотов ©   (07.02.05 01:21) [9]

наверно звучит глупо...и как мне это исправить?=)


Юрий Зотов   (2005-02-07 01:21:00) [12]

> Dwarf   (07.02.05 01:15) [7]

Ошибка не здесь, а в параметре StrToFloat. Причина - строковое представление числа содержит не тот десятичный разделитель, который установлен в системных настройках.


Palladin   (2005-02-07 01:19:00) [13]

значения 4 перепенных в студию


Dwarf   (2005-02-07 01:15:00) [14]

dirA1:=arctan((x2-x3)/(y2-y3));вот такая строчка у меня х1,х2,у1,у2 типа Single а DirA1 тоже Single.значение иксов и игриков принимает вид примерно такой : 2321.132131
а ошибка такая 2321.132131 is not a floating value примерно так..
прошу прощения если пропустил какие то буквы или т.д писал по памяти...


Fenik   (2005-02-07 01:07:00) [15]

Ошибка ещё может быть, если (у1 - у2) = 0


Юрий Зотов   (2005-02-07 01:06:00) [16]

> Dwarf   (07.02.05 00:50) [2]

У меня программа глючит. Не скажете, в чем причина?

Это означает вот что. Как Вы думаете - если бы Вы привели еще и текст сообщения об ошибке, то было бы больше или меньше шансов сразу получить точный ответ?


Palladin   (2005-02-07 00:57:00) [17]

а... запятая тут не причем... это ты пробел не поставил, с толку меня сбил... могу предположить (включив своим телепатические способности, ведь текст ошибки ты не привел, не царское это дело, мастера сами догадаются) что ты пытаешься результат присвоить переменной целого типа... так нельзя... или делай round,trunc, ceil либо используюй перменную результата вещественного типа...


Palladin   (2005-02-07 00:54:00) [18]

и что это означает? особенно запятая мне интересна...


Dwarf   (2005-02-07 00:50:00) [19]

когда я пытаюсь сделать с ними это действие : (х1-х2)/(у1-у2),у меня вылетает ошибка....


Palladin   (2005-02-07 00:49:00) [20]

можешь
попробовать в ломы чтоли? пару строчек написать...


Наверх

Титульная страница Поиск, карта сайта Написать письмо