Lazarus gibt bei dieser Funktion einen Feher aus.
Nicht für jeden String - die meisten ungültigen Strings werden, wie es auch soll einfach nicht konvertiert, aber der Folgende Code ergibt einen "SIGFPE" Error:
Code: Alles auswählen
var
x:real;
begin
TryStrtoFloat('86E67229B64E1E476A34E6E9935E1E5B',x);
end;
Könntet ihr das mal testen ?
Könnte es irgendwie daran liegen das 'B' 'E' und 'A' erlaubte zeichen sind und der da konvertieren will aber die Zahl zu groß ist ???
edit:
Ich hae verschiedene Strings getestet:
dafür hab ich den anfang '86E6722' genommen, eigentlich eine Gültige Zahl (das E ist erlaubt um Zehnerpotenzen darzustellen)
Verändere ich den Wert wie folgt, kommt kein Fehler:
X86E6722
8X6E6722
86XE6722
86EX6722
86E6X722
86E67X22
86E672X2
füge ich das X hinten an, kommt der oben beschriebene Fehler:
86E6722X
Warscheinlich wird versucht den Teil vor dem X als Zahl zu interpretieren, aber die Zahl ist einfach zu groß und der Fehler wird nicht richtig abgefangen...