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
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
Comment