Natrafiłem na maleńki problem podczas porównywania wartości dwóch pól.
Program mnoży Edit1 * Edit2 i wypisuje wynik w Edit3 w postaci: 99000,00
Kod odpowiedzialny to:
KOD cpp: UKRYJ
float a, b;
a = (Edit1->Text * Edit2->Text);
String edit0 = FormatCurr("0.00", a);
Edit3->Text = edit0;
a = (Edit1->Text * Edit2->Text);
String edit0 = FormatCurr("0.00", a);
Edit3->Text = edit0;
Następnie porównuję wartość pola Edit4, które powstaje tak:
KOD cpp: UKRYJ
float c;
c = EditX->Text - EditX->Text - EditX->Text - EditX->Text;
String edit3 = FormatCurr("0.00", c);
Edit4->Text = edit3;
c = EditX->Text - EditX->Text - EditX->Text - EditX->Text;
String edit3 = FormatCurr("0.00", c);
Edit4->Text = edit3;
A następnie porównuję wartości tak:
KOD cpp: UKRYJ
if (EditX->Text < EditX->Text)
{
Label10->Color = clRed;
Label11->Color = clRed;
}
else
{
Label10->Color = clBlue;
Label11->Color = clBlue;
}
{
Label10->Color = clRed;
Label11->Color = clRed;
}
else
{
Label10->Color = clBlue;
Label11->Color = clBlue;
}
Problem polega na tym, że kod działa prawidłowo dla liczb o tej samej ilości znaków.
Dla przykładu: 886472,88 jest mniejsze niż 99000,00
Oczywiście jest to błąd, ale nie bardzo wiem, jak go poprawić.
Liczba znaków oczywiście zmienna






