Сравнение дробных чисел.
Уважаемые специалисты.
Я работаю с компонентом DBGridEh, а база данных в SQL. На форме расположен DBGridEh, через ADO подключаюсь к БД. Я пишу счет-фактуру на Дельфи. Пользователи вводять вручную кол-во, цена, сумма, сумма НДС, всего (товара). При вводе я должен проверит правильно ли они набрали, н-р сумму НДС. Делаю следующий код:
if (qTovar.FieldByName('NDS').AsFloat<>0) //Если не ноль
and (Key=#13) then
begin
qSprNds.Open; //открытие справочника НДС
if Round((qTovar.FieldByName('SUMMA').AsFloat *
qSprNds.FieldByName('STAVKA').AsFloat/100)*100)/100<>
qTovar.FieldByName('NDS').AsFloat then //СРАВНЕНИЕ
begin
ExB:=MessageBox(handle,pchar('Не правильна подсчитана сумма НДС !!!'+#13+#10+''+
'Правильная сумма НДС = '+FloattoStr(Round((qTovar.FieldByName('SUMMA').As Float *
qSprNds.FieldByName('STAVKA').AsFloat/100)*100)/100)+
#13+#10+''),pchar('Ошибка ...'),48);
qTovar.FieldByName('NDS').AsFloat :=0;//Присваиваю ноль
end;
if Exb=IDOK then
end;
Если кол=1, цена=100.56, сумма=100.56, то должен быть НДС(4%)=4.0224
Когда я набираю на компе т.е. в ячейке 4,0224 копм ругается. Помогите плиииз, очень надо. Уже четвертый день у меня ничего не получается.
|