vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Variablen/Strings · Algorithmen/Mathematik   |   VB-Versionen: VB614.01.04
Round-Funktion in VB - optimiert (Part II)

Eine verbesserte Round-Funktion, die einen Wert korrekt rundet - egal, ob Punkt oder Komma als Nachkomma-Trennzeichen angeben ist.

Autor:   Sebastian WiebachBewertung:  Views:  14.224 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Vor langer Zeit haben wir Ihnen eine verbesserte Round-Funktion für VB vorgestellt:
 Richtiges Runden in VB

Dieser Code lässt sich aber noch optimieren, so dass eine zusätzliche Perormance-Steigerung von 2.5 bis 3 mal erreicht wird.

Hier der Code:

Public Function Round(nummer As String, _
  Optional anzahl As Byte)
 
  Dim n As Long
  Dim n2 As Long
  Dim tmp As Variant
 
  ' Ist Nummer eine Zahl?
  If Not (IsNumeric(nummer)) Then
    Round = 0: Exit Function
  End If
 
  ' Ist Anzahl eine Zahl?
  If Not (IsNumeric(anzahl)) Then
    Round = 0: Exit Function
  End If
 
  ' Wenn "." (Punkt) dann n=46
  If (InStr(1, nummer, ".") > 0) Then
    tmp = Split(nummer, ".")
    n = 46
 
  ' Wenn "," (Komma) dann n=44
  ElseIf (InStr(1, nummer, ",") > 0) Then
    tmp = Split(nummer, ",")
    n = 44
  End If
 
  ' Wenn Anzahl = 0, Zahl vor dem Komma prüfen
  If (anzahl = 0) Then
    If Left$(tmp(1), 1) < 5 Then
      ' Wenn Zahl vor dem Komma kleiner 5,
      ' nicht runden!
      Round = tmp(0)
    Else
       ' Wenn Zahl größer 5, um eins erhöhen
      Round = tmp(0) + 1
    End If
    Exit Function
  End If
 
  ' Stelle (Anzahl+1) nach dem Komma abfragen
  n2 = Mid$(tmp(1), anzahl + 1, 1)
  If (n2 > 4) Then
    Round = tmp(0) & Chr(n) & (Mid$(tmp(1), 1, anzahl) + 1)
  ElseIf (n2 < 5) Then
    Round = tmp(0) & Chr(n) & Mid$(tmp(1), 1, anzahl)
  End If
End Function



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.