Dezimalzahl als Bruch darstellen?
phpnewbie
- php
0 Ben0 Sven Rautenberg0 Harry
Also bei meinem vor kurzem selbstgeschriebenen Taschenrechner ,wollte ich jetzt noch einbaun, das er das Ergebnis in einen Bruchumwandeln also die Dezimalzahlen.Wie geht das?
mfg
noob
Hallo,
irgendwie erinnert mich das an [pref:t=37687&m=206297]... So ein Zufall aber auch.
Viele Grüße
Ben
Moin!
Also bei meinem vor kurzem selbstgeschriebenen Taschenrechner ,wollte ich jetzt noch einbaun, das er das Ergebnis in einen Bruchumwandeln also die Dezimalzahlen.Wie geht das?
Schwierig, sehr schwierig.
Wenn du "1 geteilt durch 3" rechnest, kriegst du dezimal 0,333333333333 raus. Mathematisch kriegst du aber 1/3 raus. Die Dezimalzahl ist aber nicht genau ein Drittel, sondern weniger (es gehen unendlich viele Nachkommastellen verloren), du kannst also die Zahl nie mehr in den richtigen Bruch umrechnen.
Wenn du mit richtigen Brüchen rechnen willst, darfst du Zähler und Nenner niemals echt teilen, sondern mußt sie getrennt behandeln. Die Regeln zum Kürzen und Erweitern von Brüchen, sowie die Behandlung von Doppelbrüchen etc. müssen dann zu deinem Handwerkszeug gehören. Diese Aufgabe ist interessant, aber keinesfalls trivial.
- Sven Rautenberg
Holladiewaldfee,
Also bei meinem vor kurzem selbstgeschriebenen Taschenrechner ,wollte ich jetzt noch einbaun, das er das Ergebnis in einen Bruchumwandeln also die Dezimalzahlen.Wie geht das?
Herzlich willkommen in der wunderbaren Welt der Reihenentwicklung ;-)
Prinzipielle Vorgehensweise:
Ein kleines Beispiel: 0.45691691691691691usw.
Muster erkennen:
Teil 1: 0.45
Teil 2: Periode 691
Zehnerpotenzen ermitteln:
Teil 1: 45/100
Teil 2: Zwei Stellen nach links rücken
=> 691/1000
Reihenentwicklung
Teil 1: Erübrigt sich
Teil 2: Vorfaktor * Reihe
=> 691/100 * Summe(i=1 bis unendl.){(1/1000)^i}
=> 691/100 * 1/1000 * Summe(i=0 bis unendl.){(1/1000)^i}
=> Reihe entwickeln (geom. Reihe):
=> 691/100 * 1/1000 * 1/(1-1/1000)) = 691/99900
Über's Ergebnis freuen:
q = 45/100 + 691/99900 = 45646/99900 (noch kürzen!)
Und dann darfst Du Dir bei der Mustererkennung noch einen Algorithmus einfallen lassen, wie Du reelle Zahlen von rationalen unterscheiden willst ...
Ciao,
Harry