[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Dezimalzahl in Bruch umwandeln

Sprache / Programm: VBA ab Office 95
Beschreibung

Zerlegt eine Dezimalzahl in einen Bruch. Die Näherungen werden im Testfenster (Strg+G) ausgegeben. Der Algorithmus stammt aus einem alten Programmierhandbuch für den HP-67 aus dem Jahre 1975 ... Tja, die Jungs von HP hatten mathematisch immer unheimlich viel 'drauf - wenn Excel doch nur so genau und billig wäre, wie ein HP-15C von 1982 ...

VBA-Quelltext
Public Sub DezimalZahlnBruch(DezimalZahl As Double)
    Dim A, Approx As Double
    Dim Z0 As Long, Z1 As Long, Z2 As Long
    Dim N0 As Long, N1 As Long, N2 As Long
    Dim X0 As Double, X1 As Double, X2 As Double
   
    A = Int(DezimalZahl)
    Z0 = 0: Z1 = 1
    N0 = 1: N1 = 0
    X0 = 1: X1 = (DezimalZahl - A)

    Debug.Print "Zerlegung von:" & vbNewLine, DezimalZahl

    Do
        Z2 = A * Z1 + Z0: Z0 = Z1: Z1 = Z2
        N2 = A * N1 + N0: N0 = N1: N1 = N2
        A = Int(X0 / X1)
        X2 = X0 - A * X1: X0 = X1: X1 = X2
       
        Approx = Z2 / N2
        Debug.Print Approx, Z2, N2
    Loop Until (N2 = 0 Or Approx = DezimalZahl)
 
End Sub
Argumente der Funktion/Prozedur

DezimalZahl

Zahl mit Nachkommastellen