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]

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

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.

    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!