Autor
|
Thema: Dizmalzahl = Bruch (1135 mal gelesen)
|
ducati916 Mitglied Maschinenbautechniker / Konstrukteur
Beiträge: 51 Registriert: 01.07.2005 Windows 7 CATIA V5 R21 16G Speicher
|
erstellt am: 01. Apr. 2010 21:35 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 01. Apr. 2010 21:48 <-- editieren / zitieren --> Unities abgeben: Nur für ducati916
|
ducati916 Mitglied Maschinenbautechniker / Konstrukteur
Beiträge: 51 Registriert: 01.07.2005 Windows 7 CATIA V5 R21 16G Speicher
|
erstellt am: 05. Apr. 2010 20:31 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 05. Apr. 2010 20:55 <-- editieren / zitieren --> Unities abgeben: Nur für ducati916
Servus Wo kommst du nicht weiter? ggf musst du Prozedur in eine Funktion umschreiben. zB: Code: Function DezimalZahlinBruch(DezimalZahl As Double) As String 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 On Error Resume Next A = Int(DezimalZahl) Z0 = 0: Z1 = 1 N0 = 1: N1 = 0 X0 = 1: X1 = (DezimalZahl - A) 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) DezimalZahlinBruch = CStr(Z2) & ":" & CStr(N2) On Error GoTo 0 End Function
Der Aufruf erfolgt dann über DezimalZahlinBruch(0.5) und einen liefert String zurück.Gruß Bernd
------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |