Hallo!
Du kannst statt dessen einfach eine Variable $faktor mit 1 initialisieren und pro Schleifendurchgang mit 10 multiplizieren. $potenz selbst brauchst Du ja gar nicht - Sven hat seine Formel nur "schön mathematisch" aussehen lassen.
man will die ganze Mathematik ja nicht "um sonst" gelernt haben ;-)
Wobei ich bei allen diesen Dingen Angst habe, denn (INT) 10*(0.1 + 0.7) //=7!
Elementare Kenntnisse über (hier: numerische) Mathematik _sind_ hilfreich. Da gab es neulich so einen Thread zu diesem Thema ... ;-)
Was ist "numerische" Matehmatik? Das Problem besteht doch wohl darin, dass sich bstimmte Zaheln nicht alsbinär-Code abbileden lassen, so z.B. 1/3. DAher entstehen beim Rechnen mit sochen float-zahlen ganz minimale Abweichungen, die normalerweise nicht zu sehen sind, halt nur in Spezialfällen. Nur verstehe ich das obige Beispiel nicht - was ist daran schwer abszubilden? Vermutlich ergibt 0.1 + 0.7 = 0.7999999999, und das * 10 ist dann 7.99999999 und das als INT ist 7. Aber wieso? Wieso ist 0.1 + 0.7 nicht einfach 0.8? Kann man Dezimalzahlen grundsätzlich nicht 100% korrekt binär abbilden? Wieso speichern Programmiersprachen keien INT-Werte Kombiniert mit der Potenz? Also bei 0.7 einfach 7 * 10 ^-1 ? Man rechnet einfach mit den INT-Werten und ermittelt am Ende dann zusätzlich die 10er Potenz? Und wieso werden die .9999999 nirgendwo angezeigt wenn sie doch existieren?
Der erste Teil erfordert Abstraktionsfähigkeit (das ist etwas für die Mathematiker), der zweite Kreativität (das ist etwas für die Künstler), der dritte saubere handwerkliche Arbeit (das ist etwas für die Arbeiter).
Also sind Informatiker nichts anderes als hart arbeitende Künstler mit guten Mathematikkentnissen? ;-)
Grüße
Andreas