"Division durch 0"-Problem

Fragen zum Thema InterRun
Antworten
Christian Hönnicke
Profi
Beiträge: 105
Registriert: Sa, 10 Feb, 2007 19:31

"Division durch 0"-Problem

Beitrag von Christian Hönnicke » Mi, 06 Jan, 2010 22:58

Hallo,

irgendwie stehe ich gerade auf dem Schlauch.

Ich wollte meinen Prognosebericht ausführen. Da mich eine Hand voll Buchungen stören, habe deren Werte einfach auf 0 EUR gesetzt. Seitdem bekomme ich folgenden Fehler:

Code: Alles auswählen

22:35:15: Schalter2.OnClick Gleitkommadivision durch Null Zeile: 131 Spalte: 45 > YMult = ( Hoehe - (2*Rand) )  / (YMax-YMin) | pixel pro EUR
Die Zeilennummer passt nicht ganz zum Skript, dort ist die entsprechende Zeile eine Nummer tiefer (132), aber die Zeile ist von der Beschreibung her eindeutig. Der Test mit geändertem Kommentar identifierte diese eindeutig.

Nun habe ich mir die Werte eine Zeile vorher per "SM..." ausgeben lassen.

Code: Alles auswählen

SM( YMax) |-> 3652,9 , 5869,97
SM( YMin) |-> -4054,62 , -2274,84

| Mit geänderten Buchungen (Division durch Null)
|-> 3652,9
|-> -4054,62

| Mit ursprünglichen Buchungen (fehlerfrei)
|-> 5869,97
|-> -2274,84

| Zeile 131
XMult = ( Breite - (2*Rand) ) / XMax | pixel pro Tag (bei XNext = 1) 
|SM(XMax)  -> 364
Woran kann es noch liegen? Ich hoffe mal nicht an Version 7.9....

Mit freundlichen Grüßen
Christian Hönnicke

Benutzeravatar
Team Schauries
Site Admin
Beiträge: 1058
Registriert: Mo, 17 Jan, 2005 20:25
Wohnort: Essen

Beitrag von Team Schauries » Fr, 08 Jan, 2010 7:50

Hallo Christian,

das lässt sich hier schwer nachvollziehen aber offensichtlich liefert (YMax-YMin) eine Null.

Tipp: weise zunächst YMax-YMin einer lokalen Variable zu und teile dann mit dieser Variablen.
Wiederholt sich der Fehler, müsste die lokale Variable auch eine Null aufweisen. Ist dem so?

Viele Grüße,
Dirk Schauries
Team Schauries

Christian Hönnicke
Profi
Beiträge: 105
Registriert: Sa, 10 Feb, 2007 19:31

Beitrag von Christian Hönnicke » Fr, 08 Jan, 2010 10:49

Hallo Dirk,
das lässt sich hier schwer nachvollziehen aber offensichtlich liefert (YMax-YMin) eine Null.
Das es schwer nachvollziehbar ist, kann ich verstehen, aber offensichtlich ist für mich im Moment garnichts. Siehe Ausgabe von YMin und YMax im letzten Beitrag, mit Beispiel für den positiven und negativen Fall.

Ich habe mal die Berechnung von YMax-YMin in eine lokale Variable ausgelagert. Nun wird folgender Code ausgeführt:

Code: Alles auswählen

 | Neu Anfang
Var xyz : Integer
xyz = YMax-YMin
SM(xyz)
| Neu Ende

XMult = ( Breite - (2*Rand) ) / XMax | pixel pro Tag (bei XNext = 1)
YMult = ( Hoehe - (2*Rand) )  / (xyz) | pixel pro EUR
Als Ausgabe für "xyz" erhalte ich: -401,72

Es kommt immer noch zum gleichen Fehler. Und ich habe keine Idee, woran es noch liegen könnte.

Code: Alles auswählen

10:30:55: Schalter2.OnClick Gleitkommadivision durch Null Zeile: 132 Spalte: 39 > YMult = ( Hoehe - (2*Rand) )  / (xyz) | pixel pro EUR
Mit freundlichen Grüßen
Christian Hönnicke

Benutzeravatar
Team Schauries
Site Admin
Beiträge: 1058
Registriert: Mo, 17 Jan, 2005 20:25
Wohnort: Essen

Beitrag von Team Schauries » So, 10 Jan, 2010 8:24

Hallo Christian,

kannst Du mir hierzu mal ein Beispielkassenbuch an dirk@schauries.de senden? So lässt sich der Fehler mit Sicherheit debuggen.

Viele Grüße,
Dirk Schauries
Team Schauries

Antworten