Das Problem habe ich bei der Eingabeverarbeitung ständig.
Dafür habe ich dann eine kleine Routine, welche mir die Eingabe aus einem String aufbereitet.
Gruß Peter
Delphi-Quellcode:
Function ReadFloat(buf :
String) : Extended;
var Konv :
String;
i,n : Integer;
Begin
buf := Trim(buf);
result:=0;
n := length(Trim(buf));
if n=0
then Exit;
While (n > 0)
and (buf[n]<>'
.')
and (buf[n]<>'
,')
do dec(n);
if n > 0
then buf[n] := DecimalSeparator;
dec(n);
While (n>0)
do Begin
if (buf[n]='
.')
or (buf[n]='
,')
then buf[n]:='
';
dec(n);
end;
konv:='
';
for i:=1
to length(buf)
do
if buf[i]
in ['
0'..'
9',DecimalSeparator,'
+','
-']
then konv:=konv+buf[i];
if length(Konv)=0
then Exit;
try
result:=strtofloat(Konv);
except
on E: EConvertError
do result:=0;
end;
end;