Типичная ошибка: is not a valid floating point value (Delphi)
Задумка простая. Записать формулу в базу и считать нужную строку. Сумма считывается из поля Edit (компонента из пакета TMS). формат Float (в свойствах выставил) . Компилируется без ошибок, а при запуске программы выдает ошибку: Ошибка в формуле и на этом никаких действий не происходит. Пробовал менять в строке формулы запятую на точку.
Вот код:
var sum, sumsim, totalsum: real;
min, max: integer;
i: integer;
tariff: extended;
{---------------------------}
formula: string;
begin
min := 0;
max := 0;
tariff := 0;
sum := StrToFloat (Form1.SummEdit.Text);
{--------------------------------------------------------------------------------------}
formula := StringReplace(QRCalc.FieldByName('FORMULARASCH').AsString,
'sumsim',
FloatToStr(sum),
[rfReplaceAll, rfIgnoreCase]);
CalcExpress1.formula := formula; //Ошибка тут
tariff := StrToFloat(CalcExpress1.formula);
{--------------------------------------------------------------------------------------}
totalsum := sum + tariff;
//Считываем формулу и рассчитываем размер комиссии
Form1.CurvyMemo1.Lines.Clear;
Form1.CurvyMemo1.Lines.Add('Сумма перевода: ' + FloatToStr(sum));
Form1.CurvyMemo1.Lines.Add('');
Form1.CurvyMemo1.Lines.Add('Размер комиссии: ' + FloatToStr(CalcExpress1.calc(tariff)));
Form1.CurvyMemo1.Lines.Add('---------------------------------');
Form1.CurvyMemo1.Lines.Add('итоговая сумма: ' + FloatToStr(totalsum));
Есть переменная DecimalSeparator, которая позволяет выбрать, что делит строку на дроюбную часть - запятая или точка. Ее поправьте. Или вручную приводите строку к нужному формату (меняя запятую на точку).
string и float - разные типы.
Значит где-то значение sum, вылезло за рамки типа