[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2006
    Beiträge
    37

    RPG rechnet falsch ohne *nodebugio?

    Hallo zusammen,

    ich habe ein seltsames Phänomen auf unserer Anlage:

    Der Fachbereich hat moniert dass Rechnungsbeträge nicht stimmen. Es gibt Rundungsdifferenzen.

    Im Source habe ich eine Beispielkonstellation angegeben:



    // ctl-opt option(*nodebugio); // mit *nodebugio richtig ohne falsch

    dcl-s prs packed(11:2) inz(5390); // Tausenderpreis
    dcl-s mng packed(9:0) inz(340); // Menge
    dcl-s sum packed(9:2) inz(0); // Gesamtpreis

    // 5390,00 / 1000 * 340 = 1832,60 <> 1832,59 !!!
    sum = prs / 1000 * mng;
    dsply '' '' sum;

    *inlr = *on;



    Ich hätte folgendes Ergebnis erwartet:

    5390,00 / 1000 * 340 = 1832,6

    Errechnet wurde 1832,59.

    Und jetzt wird’s komisch: Nachdem ich die die Compiler Anweisung „ctl-opt option(*nodebugio);“ hinzufüge rechnet das Programm richtig.

    Könnt ihr den Fehler nachvollziehen?

    Wir fahren 7.1 mit aktuellem PTF Stand.

    Freundliche Grüße
    Stefan

  2. #2
    Registriert seit
    Jan 2007
    Beiträge
    905
    Nö, kann das nicht nachvollziehen, hier rechnets richtig mit und ohne.
    V7R1 TR10.

    Allerdings rechne ich konsequenterweise immer die Multiplikation bevor ich dividiere.
    kf

  3. #3
    Registriert seit
    Jan 2006
    Beiträge
    37
    Is ja nen Ding.

    Danke trotzdem CF.

  4. #4
    Registriert seit
    Dec 2004
    Beiträge
    203
    Hallo.
    Konnte ich hier auf unserer Testmaschine (auch V7.1) nicht nachvollziehen.
    Gruß,
    Ralf

  5. #5
    Registriert seit
    Jan 2006
    Beiträge
    37
    Hallo Ralf,

    vielen Dank für die Info. Und das Programm hat richtig gerechnet?

    Gruß
    Stefan

  6. #6
    Registriert seit
    May 2002
    Beiträge
    1.121
    Hallo,

    ich habe das obrige Programm bei mir laufen lassen.
    Egal ob mit oder ohne *nodebugio kommt bei mir 1832,60 raus.

    V7.1
    Gruß
    Ronald

    gerade noch auf einer 2. Maschine getestet. Auch hier ist V7.1 installiert. Und auch hier habe ich in beiden Fällen 1832,60 raus bekommen

  7. #7
    Registriert seit
    Jan 2006
    Beiträge
    37
    Hallo Ronald,

    auch Dir vielen Dank. Bei uns ist der Fehler reproduzierbar.

    Ich habe ihn nun der IBM gemeldet und bin sehr gespannt, wie es weitergeht.

    Gruß
    Stefan

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Die Zwischenergebnisse sind je nach Formel unterschiedlich.

    sum = prs / 1000 * mng
    sum = prs / 1000,00 * mng
    sum = prs * 0.001 * mng

    Per Default wird auch nicht gerundet sondern abgeschnitten!
    Für eine Rundung ist
    eval(h) sum = prs / 1000 * mng
    erforderlich. In diesem Fall ist die Formel dann egal.
    Je nach Wunsch kann auch zwischendurch mit %dech() gerundet werden.
    Dies ist auch schon mal erforderlich um "kaufmännisch" korrekt zu rechnen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Cursorpositionierung ohne Bezugszahlen
    By Tonazzo in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 24-07-14, 22:12
  2. PTF-Installation ohne IPL
    By mott in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 05-11-13, 15:08
  3. RUNSQLSTM falsch aber Interaktiv OK
    By BerndF in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 10-04-03, 07:01
  4. CPYTOPCD ohne EOF
    By Markus Gruebl in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 04-08-01, 19:32
  5. ODBC Treiber ohne CA/400
    By Liebhoff in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 12-01-01, 08:50

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •