VB 5/6-Tipp 0375: Gebrochene Dezimalzahlen in ganze Brüche wandeln
von Benjamin Wilger
Beschreibung
Wer gebrochene Dezimalzahlen in ganze Brüche wandeln möchte um diese beispielsweise optisch darzustellen, sollte sich dieses Beispiel einmal anschauen.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Projekt1.vbp ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Schaltfläche "Command1" ' Steuerelement: Textfeld "Text1" ' Steuerelement: Beschriftungsfeld "Label2" ' Steuerelement: Beschriftungsfeld "Label1" 'Autor: Benjamin Wilger 'E-Mail: BDoubyu@web.de Option Explicit Private Sub Command1_Click() Dim Frac As Double, Zähler As Long Dim Nenner As Long, Ganze As Long Dim i As Long Frac = Text1.Text Ganze = Fix(Frac) Frac = Frac - Fix(Frac) Nenner = 1 For i = 1 To 5 Frac = Frac * 10 Nenner = Nenner * 10 'Kleiner Workaround: Bei fix(x) und x\1 klappt 'es manchmal nicht ganz. If InStr(1, CStr(Frac), ",") <= 0 Then Exit For Next i 'Falls Kommastellen länger als 5 sind, dann werden 'sie gerundet. s.u. Zähler = Frac 'Kürzen For i = Zähler To 2 Step -1 If ((Zähler \ i) = (Zähler / i)) _ And ((Nenner \ i) = (Nenner / i)) Then Zähler = Zähler \ i Nenner = Nenner \ i i = Frac End If Next i 'Ausgabe If Ganze Then If Zähler Then Label1.Caption = Ganze & " " & Zähler & "/" & Nenner Else Label1.Caption = Ganze End If ElseIf Zähler Then Label1.Caption = Zähler & "/" & Nenner Else Label1.Caption = 0 End If End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Projekt1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 3 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von Felix.S am 13.02.2009 um 22:05
Ich dachte, dass das einen Bruch folgend ausgibt:
3/4 + 1/7 + 3/76 + 7/517 + 5/857 + ...
Ich finde das ein bisschen zu einfach.
Kommentar von PapaDAU am 26.10.2003 um 16:58
Betr: 0375 Brüche
kleine Änderung, Focus auf Text1 setzen:
me.text1.setfocus
Frac = Text1.Text
Ganze = Fix(Frac)
Frac = Frac - Fix(Frac)
Kommentar von PapaDAU am 26.10.2003 um 16:52
Betr.: Brüche
Frac = Frac * 10
Nenner = Nenner * 10
funktioniert genauer bei:
Frac = Frac * 1000
Nenner = Nenner * 1000
MfG
Baltes