[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von loeweadolf
    Aha,

    ist denn immer gewährleistet, dass bei der interne Rechnung
    die internen Rechenfelder eine ausreichende Größe haben ?

    mfg. Ludger
    Reicht Dir der Bereich zwischen ca. 2,2 *10 hoch -308 bis 1,8 *10 hoch +308?

    Ungenauigkeiten kann es allerdings geben, wenn mit mehr als 16 Nachkommastellen gerechnet werden muss.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Die Ungenauigkeit trifft generell bei mehr als 16 Ziffern zu.
    Bei Nachkommastellen ist die Genauigkeit ggf. auch nicht die gewünschte, da Dezimale als Brüche zur 2er-Potenz gerechnet werden.
    Möchte man unbedingt genaue Nachkommastellen, so sind die Zwischenergebnisse entsprechend zu berücksichtigen:
    Siehe auch http://www.rlpforen.de/showthread.ph...ischenergebnis
    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

  3. #3
    Registriert seit
    Jul 2003
    Beiträge
    338
    Zitat Zitat von Fuerchau
    Die Ungenauigkeit trifft generell bei mehr als 16 Ziffern zu.
    Bei Nachkommastellen ist die Genauigkeit ggf. auch nicht die gewünschte, da Dezimale als Brüche zur 2er-Potenz gerechnet werden.
    Möchte man unbedingt genaue Nachkommastellen, so sind die Zwischenergebnisse entsprechend zu berücksichtigen:
    Siehe auch http://www.rlpforen.de/showthread.ph...ischenergebnis
    Ich habe mir den langen Roman kurz angesehen, auf den
    im Link hingewiesen wird.

    Das heisst doch aber:
    entweder man rechnet in Einzelschritten (wie in der guten alten Zeit)
    oder mann muss mit unter Umständen gewissen Ungenauigkeiten leben.


    mfg. Ludger

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Eindeutig NEIN. Dies gilt im Normalfall für PC-Programme, da diese generell mit Double (also 16 Stellen) rechnen (siehe auch Excel). Man benötigt teilweise schon zusätzliche Funktionen um GENAU zu rechnen (Currency-Typ erlaubt 28 Ziffern), was von Buchhaltungsprogrammen i.d.R. auch genutzt wird.

    Werden an Funktionen (Prototypen, BuiltIns) Fließkommawerte übergeben oder zurückgegeben gilt dies.
    Im normalen EVAL(H) bzw EVAL(RH) mit Dezimalfeldern (gepackt/gezont) hat man diese Probleme eben nicht. Man muss halt nur bei Zwischenergebnissen aufpassen, da diese ja nach obigen Kriterien ggf. abgeschnitten werden. Also bei komplexeren Formeln lieber EVAL(RH) als enfach weglassen (Freeform).
    Sobald jedoch eine einzige Fließkommavariable im Spiel ist, wird der gesamte Ausdruck in Fließkomma berechnet und dann ggf. als Decimal konvertiert.

    In der H-Bestimmung gibts auch noch irgend einen Schalter der die Genauigkeit betrifft.

    Was die Genauigkeit angeht kann man mit SQL (STRSQL) rumspielen, in dem man numerische Werte mal nach DOUBLE castet und dann damit rechnet.
    Bei Summenbildung kommt man schon auf unterschiedliche Ergebnisse.
    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

  5. #5
    Registriert seit
    Jul 2003
    Beiträge
    338
    Ist es denn besser, bei "normalen Werten" (gepackt/gezont) mit eval(hr) zu arbeiten als mit %decH ?

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Auf jeden Fall, da an %dec-Funktionen ja Double übergeben werden. Ausserdem, wozu den Umweg über %dec, wenn der eval(hr) verfügbar ist !
    %dec dient eher dazu, aus Zeichenfeldern numerische Werte zu machen, zumal ja die Argumente 2/3 nur konstant erlaubt sind.
    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

  7. #7
    Registriert seit
    Jul 2003
    Beiträge
    338
    Danke für die Antworten.

    mfg. Ludger

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo Ludger,

    genauer gesagt: man vermeide implizite Deklarationen durch den Compiler.
    Sprich: Einzelschritte und Literale vermeiden, das ist immer noch die einfachste Strategie.

    mfg

    Dieter Bender

    Zitat Zitat von loeweadolf
    Ich habe mir den langen Roman kurz angesehen, auf den
    im Link hingewiesen wird.

    Das heisst doch aber:
    entweder man rechnet in Einzelschritten (wie in der guten alten Zeit)
    oder mann muss mit unter Umständen gewissen Ungenauigkeiten leben.


    mfg. Ludger
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Datum-Konvertierung free rpg
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 14-03-08, 06:21
  2. Frei Porn Site!
    By Fucasdreh in forum NEWSboard Server Job
    Antworten: 0
    Letzter Beitrag: 10-01-07, 13:12
  3. Mehrere Bezugszahlen auf *off in Free RPG
    By mgraskamp in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 16-02-06, 16:01
  4. FREE RPG .. TESTN
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 7
    Letzter Beitrag: 25-01-05, 07:43
  5. Free Rpg Zeitdauer errechnen
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 12-07-04, 09:27

Berechtigungen

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