Benutzung auf eigene Gefahr ! |
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 |
|