vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Variablen/Strings · Algorithmen/Mathematik   |   VB-Versionen: VB613.04.11
Einheiten-Präfixe

Die Funktion normiert und formatiert eine übergebene Zahl und erzeugt ein passendes Präfix dazu.

Autor:   Horst LaubmannBewertung:     [ Jetzt bewerten ]Views:  9.784 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

In der Technik werden Zahlen sehr schnell sehr groß oder auch klein. Sie werden dann i.d.R. im wissenschaftlichen Format notiert. Im Sprachgebrauch werden dann aber zur Abkürzung der Aussprache Präfixe benutzt.

Beispiel: 56,2 MegaOhm

Nachfolgender Code generiert aus einem Wert (-10E24 < Zufallszahl < 10E24) eine auf 3 Nachkommastellen formatierte Zahl mit passendem Präfix.

Netter Nebeneffekt: die großen Zufallszahlen ! Viel Spaß.

Erstellen Sie für das Beispielprojekt ein neues Projekt mit einem Command-Button "Cmd_Zufallszahl", sowie 2 Label-Controls "lbl_Zufallszahl" und "lbl_Ausgabe".

Private Sub Cmd_Zufallszahl_Click()
  ' eine geeignete Zufallszahl von -10E24 bis 10E24 generieren:
  ' Mantisse und Exponent wird separat erzeugt!
 
  Dim iExponent As Integer
  Dim sZufallszahl As Single
 
  Randomize
  iExponent = Int(49 * Rnd - 24)      ' Exponent -24 bis 24
  sZufallszahl = 2 * Rnd - 1          ' von -1 bis (fast) +1
  sZufallszahl = sZufallszahl * (10 ^ iExponent)
 
  ' unbehandelt ausgeben
  lbl_Zufallszahl.Caption = sZufallszahl
 
  ' behandelt ausgeben
  lbl_Ausgabe.Caption = FindePräfix(sZufallszahl)
End Sub
' Formatiert die Zahl und erzeugt einen passenden Einheiten-Präfix
' Rückgabe als String
Public Function FindePräfix(ByVal Wert As Single) As String
 
  Dim iExpo As Integer
  Dim Präfix As String
 
  iExpo = 0
 
  ' Wert testen und normieren...
  If Wert <> 0 Then
    ' positiv oder negativ
    If Wert > 0 Then
      ' Wert positiv
      While Wert < 1
        ' milli, mikro oder so
        Wert = Wert * 1000: iExpo = iExpo - 1
      Wend
 
      While Wert >= 1000
        ' Kilo, Mega oder so
        Wert = Wert * 0.001: iExpo = iExpo + 1
      Wend
 
    Else
      ' Wert negativ
      While Wert > -1
        Wert = Wert * 1000: iExpo = iExpo - 1
      Wend
 
      While Not Wert > -1000
        Wert = Wert * 0.001: iExpo = iExpo + 1
      Wend
    End If
  End If
 
  ' ...Präfix aufbereiten
  Select Case iExpo
    Case -8: Präfix = "yokto"
    Case -7: Präfix = "zepto"
    Case -6: Präfix = "atto"
    Case -5: Präfix = "femto"
    Case -4: Präfix = "pico"
    Case -3: Präfix = "nano"
    Case -2: Präfix = "mikro"
    Case -1: Präfix = "milli"
    Case 0: Präfix = ""
    Case 1: Präfix = "Kilo"
    Case 2: Präfix = "Mega"
    Case 3: Präfix = "Giga"
    Case 4: Präfix = "Tera"
    Case 5: Präfix = "Peta"
    Case 6: Präfix = "Exa"
    Case 7: Präfix = "Zetta"
    Case 8: Präfix = "Yotta"
  End Select
 
  FindePräfix = Format$(Wert, "0.000") & " " & Präfix
End Function

Dieser Tipp wurde bereits 9.784 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (1 Beitrag)

nach obenzurück


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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel