Hallo Martin,
Das mit „Str“ (s. Posting unten) ist eine gute Idee.
Unabhängig davonkönnte es dich aber reizen, das Problem nicht über den „Umweg“ von Zeichenketten zu lösen, sondern rein auf Zahlenebene. Das vergleichsweise kompliziert, aber interessant.
(Schritt 1)
Mit dem dekadischen Logarithmus (Log zur Basis 10) erhälst du Informationen, wie viele Stellen deine Zahl hat. Den dekatischen Logarithmus von X erhälst du aus der Delphi-Funktion „Ln“ (=logarithmus naturalis, Log zur Basis e) mit Ln(x)/ln(10).
Davon interessierten die Stellen vor dem Komma. Die Nachkommastellen kannst du mit „Int“ abschneiden. Nehmen wir an, deine Zahl sei X = 4235. Der L = Log(X) = 3.6268…, die Vorkommastelle ist L’ = 3. Mit Q = 10 hoch L’ {in Delphi: exp(L’*ln(10)), siehe Potenzgesetze} bekommst du den Quotient, durch den du X teilen kannst, um eine Zahl zu erhalten, deren Vorkommastelle die erste Ziffer von X ist: Im Beispiel ist Q = 10^3 = 1000.
Nun die Berechnung der ersten Ziffer:
(Schritt 2a)
Z = X/Q = 4235/1000 = 4.235. So, von Z nimmst du mit der Funktion „Int“ wieder die Vorkommastelle, das ist 4, also Z’ = 4. Das ist die erste Ziffer.
(Schritt 2b)
Die nächste Ziffer bekommst du, indem du von X einfach Z’*Q abziehst: X = X-Z’*Q. Im Beispiel erhälst du also X = 4235 - 4*1000 = 4235-4000 = 235. Für die nächste Stelle mußt du Q durch 10 teilen. Jetzt ist Q also 100.
Jetzt geht’s weiter wie bei Schritt 2a:
Und wieder Z = X/Q = 235/100 = 2.35, Z’=Int(2.35)=2. Die nächste Ziffer ist also 2.
und Schritt 2b:
Wieder X=X-Z’*Q=235-2*100=35. Q=Q/10=10.
Mit diesem X beginnst du von vorne. Also L=Log(253)=2.
Und wioeder Schritt 2a usw usw, bis dein Q=0 ist. Dann bist du fertig (für die Vorkommastellen).
Gruß
Jochen