[Python-de] Re: Division von Gleitkommazahlen

"Martin v. Löwis" martin at v.loewis.de
Mon Mai 31 21:23:42 CEST 2004


Frank Hildesheim wrote:
> das mit den halben Bytes stimmt natürlich, aber ich brauche ja gerade 
> das exakte Ergebnis der Division, also eine Gleitkommazahl, die mir z.B. 
> umgekehrt das genau Vielfache einer Dateigröße angibt.
[...]
> Ist wohl etwas ungenau formuliert, kann es aber nicht näher beschreiben!

Nein, das ist sehr genau definiert. Du willst eine Zahl Q, so dass 
(gegeben A und B), Q*B = A.

Leider kann man Dir diesen Wunsch mit Gleitkommazahlen nicht erfüllen,
wenigstens dann nicht, wenn B keine Zweierpotenz ist. Das liegt nicht
an Python, sondern an Gleitkommazahlen.

Deshalb darfst Du keine Gleitkommazahlen verwenden.

Allerdings ist in Deinem Python-Algorithmus ein Fehler: Statt

            Datei1 = Wert1 in Byte
            Datei2 = Wert2 in Byte
            Ergebis = float( Wert1 / Wert2)
            irgendeinBefehl -Faktor(Ergebnis)

solltest Du schreiben

            Datei1 = Wert1 in Byte
            Datei2 = Wert2 in Byte
            Ergebis = float(Wert1) / float(Wert2)
            irgendeinBefehl -Faktor(Ergebnis)

Ansonsten ist nämlich Wert1/Wert2 eine Ganzzahldivision, bei der
der ohnehin schon angenäherte Quotient noch auf die nächste ganze
Zahl gerundet wird.

Ciao,
Martin