Tut mir leid, ich verstehe überhaupt nicht, was Du willst - vor allem, weil Du bei
integer auf einmal von
Kommazahlen sprichst. Du bist ja nicht "neu im Geschäft"; deshalb nehme ich an, Du meinst
nicht:
iLaenge := SizeOf(integer);
Folgendes dürfte ziemlich langsam sein:
iLaenge := Length(IntToStr(iZahl));
Ich würde es vermutlich so machen:
Delphi-Quellcode:
function AnzahlZiffern(const iZahl: int): integer;
var i0: integer;
begin
Result := 1;
i0 := iZahl div 10;
while (i0 >= 0)
do begin
Inc(Result);
i0 := i0 div 10;
end;
end;
Ich vermute, dass einer der Fachleute für
ASM oder Bit-Manipulation eine schnellere Lösung kennt. Jürgen
PS. Bitte nicht sauer sein, wenn ich mit C#-Schreibweisen durcheinander gekommen bin.
PS2. Das war ja klar, dass ich langsam bin; aber meine Antwort ist noch nicht überflüssig.