Rechenfehler in C#
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
anweisung
arbeiten
bedarfsfall
berechnen
berechnung
code
computer
ersten rechnung
fehler
formel
kluge idee
meinung
mittelpunkt
narr
problem
programm
richtiges ergebnis
stehen
taschenrechner
vermutung
-
Hallo,
ich möchte den Mittelpunkt eines Rectangle berechnen das sieht bei mir etwa so aus:
//oDestRect.Location.X ist 460 //oDestRect.Location.Y ist 219 //oDestRect.Width ist 369 //oDestRect.Height ist 88 new Vector2((float)(oDestRect.Location.X + (oDestRect.Width / 2.0f)), (float)(oDestRect.Location.Y + (oDestRect.Height / 2)))
Bei der ersten Rechnung kommt 644.5 und bei der zweiten 263. Wenn man nun aber einen Taschenrechner nimmt und nachrechnet kommt was anderes raus (mit dem Taschenrechner das Richtige)
Hattet ihr schonmal ein ähnliches Problem? - Wie kann man das beheben?
Danke schonmal -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
also nach meinen berechnungen (x + breite/2 und y+höhe/2), und auch so wie die formel dasteht kommt als Mittelpunkt (644.5 | 263) heraus
ich denke, die variablen haben einfach nicht die richtigen werte.
mfg -
Komisch ist nur, dass der selbe Funktionsaufruf in einem anderen Programm (die selben Variablenwerte) ein anderes, richtiges, Ergebnis hervorruft.
-
Dann können nicht dieselben Werte drinnen stehen, sonst würde dein Computer ja falsch rechnen
Mit einem Debug.Assert oder ähnlichen kannst du deine Vermutung ja leicht prüfen und im Bedarfsfall eine Fehlermeldung werfen. -
Dürfte ich erfahren, was deiner Meinung nach die richtige Lösung ist?
Ansonsten ist debugging tatsächlich eine kluge Idee.
Ich denke allerdings, dass du dir da einen narren an einem Logikfehler gefressen hast, der nicht in deinem Computer, sondern deinem hirn steckt. -
Dann können nicht dieselben Werte drinnen stehen
Ansonsten ist debugging tatsächlich eine kluge Idee.
Hab die Wete vom Debugging. Und den "Fehler" hab ich auch gefunden. Ein anderer Thread hat immer kurz vor der Rechnung auf die Variable zugegriffen und den Wert verändert. - Das zeigt mal wieder, dass man nicht ohne lock() Anweisung arbeiten sollte -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage