Domino 9 und frühere Versionen > ND7: Entwicklung
Umwandlung in Dezimalzahl
klaussal:
Warum nimmst Du nicht einfach die linken neun Stellen, haust die in ein Zahlenfeld rein und anschliessen Division durch 100 ? Dann je nach der rechten Stelle * (-1) oder nicht.
m3:
--- Code: --- Dim zahlen(1) As String
Dim temp As String
Dim negativ As Boolean
Dim nachkomma As String
Dim vorkomma As String
Dim offset As Integer
Dim laenge As Integer
Dim ergebnis As Double
zahlen(0) = "000000129-"
zahlen(1) = "000000129 "
Forall zahl In zahlen
laenge = Len(zahl)
temp = Right(zahl, 1)
If( temp = "-" ) Then
negativ = True
offset = 3
Else
negativ = False
offset = 2
End If
nachkomma = Mid$(zahl, laenge - offset, 2)
vorkomma = Left(zahl, laenge - offset)
ergebnis = Cdbl( Cstr( Cint(vorkomma) ) & "," & Cstr( Cint(nachkomma) ) )
If (negativ) Then
ergebnis = ergebnis * -1
End If
Msgbox ergebnis
End Forall
--- Ende Code ---
Glombi:
--- Zitat ---ergebnis = Cdbl( Cstr( Cint(vorkomma) ) & "," & Cstr( Cint(nachkomma) ) )
--- Ende Zitat ---
Mit String Operationen wäre ich vorsichtig. Wenn es schon sein muss, dann würde ich das Trennzeichen für den Dezimalseparator aus den Betriebssystemeinstellungen lesen:
DecimalSep
Read-only. The decimal separator in number format, for example, the decimal point.
string = notesInternational.DecimalSep
Bsp. aus der Hilfe
Dim session As New NotesSession
Dim international As NotesInternational
Set international = session.International
Messagebox international.CurrencyDigits,, _
"Number of decimal digits"
Messagebox international.DecimalSep,, "Decimal separator"
Messagebox international.ThousandsSep,, "1000s separator"
If international.IsCurrencyZero Then
Messagebox "Yes",, "Leading zero?"
Else
Messagebox "No",, "Leading zero?"
End If
Andreas
m3:
Ja wollte ich eh noch, hab dann aber drauf vergessen. Danke für den Nachtrag.
klaussal:
Der Offset muss jedesmal 2 sein, sonst stimmt das Ergebnis nicht !!
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln