Einzelnen Beitrag anzeigen

Emilio

Registriert seit: 14. Dez 2003
65 Beiträge
 
#1

Fehlermeldung "Gleitkommaüberlauf"

  Alt 23. Mär 2006, 09:20
Moin allerseits,

ich erhalte die Fehlermeldung "Gleitkommaüberlauf" in der markierten Prozedur und habe keine Idee, woher sie kommt, warum und v.a. wie ich sie wegbekomme:

Delphi-Quellcode:
 
//. . . wenn noch kein neuer LVP eingetragen wurde
  if EditCurr2.Value = 0 then
    begin
  CalcRule01(ekneu, zuschlag, BPAlt, LVPAlt, MwSt, BruttoLVPAlt, MargeEAlt, ProvSatz,
  ProvLVPAlt, bpneu, bpaender, lvpneu, lvpaender, bruttolvpneu, bruttolvpaender, margeEneu,
  margeEaender, margeprozneu, margeprozaender, provlvpneu, provlvpaender);
    end
    else
// . . . wenn ein LVP bereits vorhanden ist
   if EditCurr2.Value > 0 then
    case Form2.ShowModal of
    mryes: // Werte mit Standard-KalkluationsRegel überschreiben
      CalcRule01(ekneu,zuschlag,BPAlt,LVPAlt,MwSt,BruttoLVPAlt,MargeEAlt,ProvSatz,
      ProvLVPAlt,bpneu,bpaender,lvpneu,lvpaender,bruttolvpneu,bruttolvpaender,margeEneu,
      margeEaender,margeprozneu,margeprozaender,provlvpneu,provlvpaender);
    mrno: // nicht überschreiben
      CalcRule03(ekneu,zuschlag,lvpneu,ProvSatz,MargeEAlt,ProvLVPAlt,bpneu,margeEneu, // hier kömmt der Fehler und zwar
      margeprozneu,provlvpneu,margeEaender,margeprozaender,provlvpaender); // genau bei der Position 'margeprozneu'
    mrcancel:
      exit;
    end;

  EditCurr7.Value := bpneu;
  EditCurr2.Value := lvpneu;
  EditCurr3.Value := bruttolvpneu;
  EditCurr4.Value := margeEneu;
  EditCurr5.Value := margeprozneu;
  EditCurr6.Value := provlvpneu;
zur Erläuterung:
auf meiner Form sind mehrere Edits vom Typ TEditCurr (Extended), in welche der User Werte eingeben kann und Berechnungen mit diesen Werten durchführen kann. Hier speziell: der User gibt einen neuen Verkaufspreis für einen Artikel ein; anschließend einen neuen Einkaufspreis in das dafür vorgesehene Feld. Nach Auswahl des Gemeinkostenzuschlagssatzes "stellt das Programm fest", dass die Standard-Kalkulationsregel nicht ohne Rückfrage angewendet werden kann (siehe Punkt: // wenn ein LVP bereits vorhanden ist). Also öffnet sich ein Form modal und bietet ja, nein und abbrechen. Bei Wahl auf ja, wird die Standardregel angewendet (eingegebene Werte überschrieben), bei nein, soll mit den User-Werten gerechnet werden - und hier klömmts!

Hat jemand nen Tipp in welcher Ecke des Dunkels sich ein Streichholz verbirgt?

VG
Emilio
  Mit Zitat antworten Zitat