Announcement

Collapse
No announcement yet.

Interbase 6 rechnet falsch ?!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Interbase 6 rechnet falsch ?!

    Hallo Leute,

    ich verwende Interbase 6 (WI-V6.0.1.6) mit einem Delphi-Client. Per SQL-lasse ich Formeln von Interbase in einem DOUBLE PRECISION-Feld berechnen. Kommen große (Zwischen-)Ergebnisse bei den Berechnungen heraus so trägt Interbase fehlerhaft Ergebnisse (meistens negative) in das DOUBLE PRECISION-Feld ein.

    Hier mal ein Beispiel zum Nachvollziehen:

    Zuerst erstellen wir die Tabelle:

    <PRE>
    CREATE TABLE TESTDATEN
    (
    TEMP DOUBLE PRECISION
    )
    </PRE>

    Jetzt fügen wir einen neuen Eintrag ein und lassen Interbase dabei rechnen:

    <PRE>
    insert into TESTDATEN values ( 303310.53 * 100 / 430.88 )
    </PRE>

    Laut Taschenrechner sollte dabei "70393.272" herauskommen. Interbase trägt aber "-29285,6943000371" ein.

    Ist DOUBLE PRECISION der falsche Feldtyp für große Zahlen ? Hat jemand diese Problem schon mal bemerkt ?

    Viele Grüße,

    Matthias

  • #2
    Hallo Matthias,

    der Fehler ist schon lange bekannt (der sogenannte "Klapperich-Bug"). Im Firebird-Server ist der Fehler behoben. Bei Interbase weiß ich nicht ob der Bug mittlerweile behoben wurde.

    Tschau

    Torste

    Comment


    • #3
      Matthias,

      habe gerade deine tabelle incl. insert auf dem aktuellen Interbase 7.1 getestet; hier wird das korrekte ergebnis "70393.272" in der tabelle gespeichert (und natürlich angezeigt).

      :-) thoma

      Comment

      Working...
      X