Ttable - не сходится сумма

  • Автор темы Автор темы brink
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
B

brink

Проблемма такая: считую общую сумму и 4е составных сумм, после суммирую 4е составных и сравнюю с общей - результат - например, есть две сотавные они сходятся с общей, а выдает неравенство?

Код:
bool __fastcall TDM::CheckKEKVP(int i)
{
AnsiString tmp;
double s, s1, s2, s3, s4, sa;
s = itsTbl->FieldByName("S")->AsVariant; //общая сумма
s1 = itsTbl->FieldByName("S1")->AsVariant;
s2 = itsTbl->FieldByName("S2")->AsVariant;
s3 = itsTbl->FieldByName("S3")->AsVariant;
s4 = itsTbl->FieldByName("S4")->AsVariant;
sa = s1+s2+s3+s4;
if(s != sa)
{
tmp = "!!!Сумма по всем КЕКВ не сходится с общей в строке: ";
tmp += i;
itsMemo->Lines->Add(tmp);
return false;
}
return true;
}
 
Погрешность округения возможно .. сравнивайте с какой-то дельтой ...

И не по теме вопрос ... А зачем получать дробные значения из базы как Варианты?
 
Это цифры или что?

Зачем использовать вариант? Им можно сложить колбасу с огурцами.
Используй float. Всё будет ок.

Удачи.
 
Это цифры или что?

Зачем использовать вариант? Им можно сложить колбасу с огурцами.
Используй float. Всё будет ок.

Удачи.

Вариант использовал в качестве эксперимента. Там действительно надо было округлить до 2 знаков...
У меня такой вопрос: размер поля ”S”,”S1”,”S2”… в dbf- файле - 17 целых и 2 дробных чисел, каким типом можно воспользоваться, чтобы корректно подсчитать сумму в этих полях.
 
Я пользуюсь NUMERIC(15,2).

Удачи.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab