Einzelnen Beitrag anzeigen

Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#12

Re: StrToInt löst keine exception aus

  Alt 14. Mär 2006, 14:42
Kleine Ergänzung:

Einige Zahlen außerhalb des Long-Bereichs werden nicht zurückgewiesen sondern falsch konvertiert. Die Abfrage

Code:
if (Result > (High(Result) div 10)) or (not (s[I] in ['0'..'9'])) then
greift erst ab dem Wert 2147483650, der Long-Bereich ist aber [-2147483648..2147483647].
Borland hat dies in der Systemroutine _ValLong (im Assembler-Teil!) durch eine Abfrage des Overflow-Flags kompensiert.

Der Fehler tritt aber lediglich an den Intervallrändern auf und dürfte nur für die Anwendungsfälle interessant sein, in denen der Long-Bereich exakt abgedeckt werden soll.

Gruß Hawkeye
  Mit Zitat antworten Zitat