Diese Funktion überprüft eine Zahl auf eine bestimmte Anzahl von Ziffern vor und nach dem Komma.
''' <summary>
''' Funktion zur Überprüfung, ob die Anzahl der Ziffern im Double-Wert innerhalb der Grenzen liegt.
''' </summary>
''' <param name="value">
''' Der zu überprüfende Double-Wert.
''' </param>
''' <param name="MaxIntegerDigits">
''' Die maximale Anzahl der ziffern vor dem Komma.
''' </param>
''' <param name="MaxFractionalDigits">
''' Die maximale Anzahl der Nachkommastellen.
''' </param>
''' <returns>
''' True wenn die überprüfung erfolgreich ist, ansonsten False
''' </returns>
Private Function IsValidDoubleLength(value As Double, MaxIntegerDigits As Integer, MaxFractionalDigits As Integer) As Boolean
Dim result As Boolean = True
'Konvertieren des Double-Werts in einen String im Standard-Format "G"
Dim strValue As String = value.ToString("G")
'Entfernen des Vorzeichens, falls vorhanden
If strValue.StartsWith("-") OrElse strValue.StartsWith("+") Then
strValue = strValue.Substring(1)
End If
'Überprüfen, ob der String ein Dezimalpunkt oder Komma enthält
Dim parts() As String = strValue.Split("."c, ","c)
'Bestimmen der Anzahl der Ziffern vor und nach dem Dezimalpunkt
Dim integerPartLength As Integer = parts(0).Length
Dim fractionalPartLength As Integer = If(parts.Length > 1, parts(1).Length, 0)
'Überprüfen, ob die Anzahl der Ziffern innerhalb der Grenzen liegt
If integerPartLength > MaxIntegerDigits OrElse fractionalPartLength > MaxFractionalDigits Then
result = False
End If
Return result
End Function
Kommentare zum Snippet