Topic: Как правильно сделать расчет данных в форме?
nHW: string; //коэфф для расчета согласно формы обучения и специальности
week1,week2: string; //количество недель в семестрах 1 и 2
begin
nHW:=SQLExecute('SELECT koef FROM process WHERE id_fo='+IntToStr(idFo)+' AND id_specialn='+IntToStr(idKv)); //0,25
week1:=SQLExecute('SELECT s1 FROM process WHERE id_fo='+IntToStr(idFo)+' AND id_specialn='+IntToStr(idKv)); //17
week2:=SQLExecute('SELECT s2 FROM process WHERE id_fo='+IntToStr(idFo)+' AND id_specialn='+IntToStr(idKv)); //17
//
на форме plan_edit.Edit5.Text = 2
на форме plan_edit.Edit8.Text = 2
//
1-й вариант дает 17, хотя 2*17*0,25+2*17*0,25=18
plan_edit.Edit1.Value:=StrToInt(plan_edit.Edit5.Text)*StrToInt(week1)*StrToFloat(nHW)+StrToInt(plan_edit.Edit8.Text)*StrToInt(week2)*StrToFloat(nHW);
почему-то количество часов во 2-м семестре считается как 8, а не 9 (8,5 округляется до 9 в первом семестре)
2-й вариант дает 16, 8+8
plan_edit.Edit1.Value:=plan_edit.Edit5.Value*StrToInt(week1)*StrToFloat(nHW)+plan_edit.Edit8.Value*StrToInt(week2)*StrToFloat(nHW);
//
Как добиться правильного результата -18 часов ? Подозреваю, что что-то с неверным назначением типов переменных...