Dezimalpunkt
-
Hallo
Wenn ich 1.500.200,30 / 2 nehme bekomme ich die Fehlermeldung(Ist kein gültiger Gleitkommawert).
Wie kann ich das verhindern?Gruß
Tomm
-
Poste doch mal deinen Code.
-
Hallo
Das ganze ist eigentlich nur ein Test,denn es muß doch möglich sein mit einem formatierten Ergebnis neue Berechnungen anzustellen.Edit1->Text = FloatToStr(Ergebnis1,ffNumber,10,2);
Edit2->Text = FloatToStr(StrToFloat(Edit1->Text) / 2);
-
Sorry
Es heißt natürlich FloatToStrF(Ergebnis1,ffNumber,10,2);
-
hi,
in der Hilfe zu StrToFloat() steht, daß Tausendertrennzeichen nicht zulässig sind.snoopy_kmo
-
Hallo
Und welche ist zulässig?
-
Du kannst die Dezimalpunkte mittels AnsiPos lokalisieren und dann entsprechend entfernen.
-
es ist nur das Dezimaltrennzeichen zulässig!
-
Hi,
//Edit1->Text == "1.500.200,30" char TmpDS = DecimalSeparator; DecimalSeparator = ','; try { AnsiString TmpStr = StringReplace(Edit1->Text, ".", "", TReplaceFlags() << rfReplaceAll); double TmpNr = 0.; /*------ BCB6 -------*/ if (TryStrToFloat(TmpStr, TmpNr)) Edit1->Text = FloatToStrF(TmpNr / 2., ffNumber, 10, 2); else Edit1->Text = FloatToStrF(0., ffNumber, 1, 2); /*-------------------*/ /*------ <= BCB5 ------- try { Edit1->Text = FloatToStrF(StrToFloat(TmpStr) / 2., ffNumber, 10, 2); } catch(...) { Edit1->Text = FloatToStrF(0., ffNumber, 1, 2); } -------------------*/ } __finally { DecimalSeparator = TmpDS; }