|
Falls Sie einmal, beispielsweise zur Speicherung in Datenbanken, eine Zahl unabhängig vom lokal üblichen Dezimaltrennzeichen mit einem Punkt als Dezimaltrennzeichen formatiert benötigen, hilft Ihnen die Str$-Funktion weiter. Sie stammt noch aus Ur-Basic-Zeiten und war seinerzeit die erste und einzige Möglichkeit, eine Zahl explizit in einen String zu konvertieren. Lokale Gegebenheiten hat die Str$-Funktion nie berücksichtigt, so dass sie für die gestellte Aufgabe geeignet erscheint - bis auf ein paar kleine Macken, die aber leicht in den Griff zu bekommen sind.
Zunächst stört es Sie sicher, dass positiven Werten ein Leerzeichen vorangestellt ist, als gut gemeinter Platzhalter für das gegebenenfalls auszugebende Minuszeichen bei negativen Werten. Abhilfe schafft die LTrim$-Funktion:
AlsString = LTrim$(Str$(Wert))
Dummerweise verschluckt die Str$-Funktion darüber hinaus noch die führende Null, falls der Betrag des Wertes kleiner als 1 ist (Dezimalbruch). Hier wird die Bereinigung ganz klein wenig aufwändiger, da die fehlende Null bei negativen Werten zwischen Minuszeichen und Dezimalpunkt eingefügt werden muss.
Die folgende Funktion ForceDecimalPoint nimmt gegebenenfalls beide Modifikationen vor:
Public Function ForceDecimalPoint(Value As Double) As String
If Abs(Value) < 1 Then
If Value < 0 Then
ForceDecimalPoint = "-0" & Mid$(Str$(Value), 2)
Else
ForceDecimalPoint = "0" & LTrim$(Str$(Value))
End If
Else
ForceDecimalPoint = LTrim$(Str$(Value))
End If
End Function
|