Feedback

VB - Nachkommastellen einer Dezimalzahl extrahieren

Veröffentlicht von am 17.11.2011
(0 Bewertungen)
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.
GFU-Schulungen  [Anzeige]

Angular mit ASP.NET Core für .NET-Entwickler

.NET ist Ihnen vertraut, als Entwickler verfügen Sie über einschlägige Kenntnisse. In diesem Kurs lernen Sie nun, Angular in .NET-Umgebungen einzusetzen. Sie verstehen das Konzept von Angular und integrieren das clientseitige JS-Framework sicher in.NET-Anwendungen.

Visual Studio Team Foundation Server 2017/2015 (TFS) - Komplett 

    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

Thomas Söhne schrieb am 20.01.2012:
Hi Eugen, du hättest mit zahltext.Split(dezimaltrennzeichen)[1] leichter an den String der Nachkommastellen kommen können, musst natürlich prüfen, ob du zwei hast.
Reverse() brauchst du eigentlich gar nicht!
 

Logge dich ein, um hier zu kommentieren!