Domino 9 und frühere Versionen > ND7: Entwicklung

Umwandlung in Dezimalzahl

<< < (2/3) > >>

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