Formel gesucht

02/10/2008 - 23:39 von Maxi | Report spam
Hallo,

ich bin auf der Suche nach einer Formel/Funktion die mir Zahlen mit
einer steigenden Zehnerpotenz multipliziert.

Beispiel:
5-stellige Zahl "12345", von der letzten Stelle (also rechts) an
beginnend wird die erste Zahl mit 9 multipliziert, die zweite dann mit
90, die nàchste mit 900 etc multipliziert.

Als Ergebnis werden die Summen addiert, was dann 111105 ergibt.

Wie könnte ich das in eine Funktion verpacken?

Als erstes dachte ich aus der Zahl ein String zu machen um dann eine
Stelle nach der anderen wieder zu einer Integer zu wandeln und dann
jede Stelle mit 9,90,900 etc zu berechnen.

Ist das so ok oder gibt es ein besseren Weg?


Vielen Dank erstmal ür Eure Tipps,
Maxi
 

Lesen sie die antworten

#1 Kerem Gümrükcü
03/10/2008 - 02:39 | Warnen spam
Hallo Maxi,

ich bin auf der Suche nach einer Formel/Funktion die mir Zahlen mit
einer steigenden Zehnerpotenz multipliziert.



dein Weg ist ok, ich habe Dir mal eine Funktion geschrieben.
Fehlerbehandlung ist Dir vorbehalten!

Füge das in deine Form_Load ein:

MessageBox.Show(Me.CalculateContinousPowerOfTen(12345, 9).ToString())

und das in die Form Klasse:

Private Function CalculateContinousPowerOfTen(ByVal Number As Long,
ByVal Multiplicator As Long) As Long
Dim NumberString As String = Number.ToString()
Dim ResultNumberLong As Long = 0
Dim PowersMultiplicationIterator As Long = 1

For i As Long = NumberString.Length To 1 Step -1
ResultNumberLong += Convert.ToInt64(NumberString.Substring(i -
1, 1)) * (PowersMultiplicationIterator * Multiplicator)
PowersMultiplicationIterator = PowersMultiplicationIterator * 10
Next

Return ResultNumberLong
End Function


Das sollte dein Problem lösen. Die String Methode ist meiner Meinung nach
die eleganteste da man die Zahl ja in einzelne Zahlen aufbrechen muss (man
könnte schon Token/Tokenizing sagen), die man dann bearbeitet. Wenn
jemand eine besere Lösung hat, dann immer her damit,...


Grüße

Kerem


Beste Grüsse / Best regards / Votre bien devoue
Kerem Gümrükcü
Latest Project: http://www.codeplex.com/restarts
Latest Open-Source Projects: http://entwicklung.junetz.de
"This reply is provided as is, without warranty express or implied."

Ähnliche fragen