Dieses Snippet liefert die Nachkommastellen einer Double-Dezimalzahl. Damit keinesfalls durch mathematische Berechnungen Verfälschungen entstehen können, werden zur Auswertung String-Methoden verwendet. Das gültige Dezimal-Trennzeichen, welches von .NET bei der Umwandlung von Double nach String verwendet wird, wird den Culture-Einstellungen entnommen. Sind keine Nachkommastellen vorhanden (z.B. 3,0), so kommt ein leerer String.
Public Function NachkommastellenString(ByVal Zahl As Double) As String
Dim zahltext As String
Dim zahltextRückwärts As String
Dim position As Integer
Dim nachkommateil As String
Dim dezimaltrennzeichen As String
'>>> gültiges Dezimaltrennzeichen holen, welches .NET gerade auch bei der Umwandlung von Double nach String in den String einsetzt (kann auch ein String aus mehreren Zeichen sein)
dezimaltrennzeichen = My.Application.Culture.NumberFormat.NumberDecimalSeparator.ToString
'>>> Dezimalzahl in String umwandeln
zahltext = Convert.ToString(Zahl)
'>>> Zahlenstring umdrehen, so dass die Nachkommastellen vorne stehen
zahltextRückwärts = StrReverse(zahltext)
'>>> Dezimaltrennzeichen im Zahlenstring suchen, anzahl wird entsprechend durch die Fundstelle im String bestimmt, da die Fundstelle nullbasiert ist
position = zahltextRückwärts.IndexOf(dezimaltrennzeichen)
'>>> Sind Nachkommastellen vorhanden, so ist position größer 0
If position > 0 Then
nachkommateil = zahltext.Substring(zahltext.Length - position, position)
Return nachkommateil
Else
Return ""
End If
End Function
1 Kommentare zum Snippet