Thread Richtig INTen
(14 answers)
Opened by bianca at 2009-12-24 09:27 2012-01-17T18:12:29 GUIfreund Ja, eine Spitzfindigkeit. Klar liefert es das "richtige" Ergebnis. Aber es bringt mir ja nichts, wenn das computerrichtige Ergebnis mathematischer Nonsens ist. 0.57 * 100 ist nun mal nicht 56 sondern 57, egal ob ich das int'e oder nicht :)) Ich schrieb ja auch, dass es kein primäres int Problem ist. Aber man muss ja trotzdem die Rechenschwächen irgendwann oder irgendwo ausgleichen. 2012-01-17T18:12:29 GUIfreund Auf meinen Systemen ist es egal, ob ich es in die sub übergebe oder direkt einsetze, es kommt immer 56 raus und das ist und bleibt für mich "falsch". Und ich weiß auch nicht, in welchem Zusammenhang man dieses Ergebnis berechtigterweise als richtig bezeichnen könnte. Sein Zustandekommen mag erklärbar sein, das macht es aber deshalb nicht richtiger :) Und am Ende wollte ich nicht nachweisen, dass int etwas verdirbt sondern ich nutze das int'en mit eigener Routine eben an einigen Stellen zur Korrektur falscher Ergebnisse. Ist halt tückisch. Auf den ersten Blick übergibst du .57*100 an int() und es kommt 56 raus. Rechnest du ohne int() kommt 57 raus, siehe hier: Quote Was ist zuerst verdächtig? Klar, kann nur int() sein. Wenn man tiefer schaut natürlich nicht, denn int() bekommt ja schon Nonsens geliefert. Jetzt kann man auf zweierlei Arten reagieren: Entweder du rufst nach jeder Rechenoperation mit Kommazahlen eine Korrekturroutine auf oder du machst es kombiniert mit int(). Und die Korrekturroutine ist ja nicht ganz trivial, da der PC seine eigenen Fehler nicht beheben kann. Also mache ich int(), denn ich weiß ja meistens, wieviele Stellen ich brauche. Also vorher Komma verschieben, int'en und Komma wieder zurück. Vom Code her erscheint mir das als einer der einfachsten Wege, dem PC das korrekte Rechnen beizubringen :) Editiert von bianca: Textergänzung Editiert von bianca: Code ergänzt Last edited: 2012-01-17 19:55:08 +0100 (CET) 10 print "Hallo"
20 goto 10 |