Announcement

Collapse
No announcement yet.

INTERBASE und "kryptisches" Rechnen das x-te mal !!!

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

  • INTERBASE und "kryptisches" Rechnen das x-te mal !!!

    Hallo,<BR><BR>
    es ist und wird vermutlich nicht die erste und letzte Diskussion bezüglich dem <b>RECHNEN</b> sein.<BR><BR>Warum rechnet <b>INTERBASE 6.0</b> so kryptisch:<BR><BR>Tabellen-Felder sind vom Typ <b>NUMERIC(9,6)</b><BR><BR><PRE>
    SELECT (SOLLWERT - ISTWERT) AS RESULTAT, SOLLWERT,ISTWERT
    FROM WERTETABELLE
    WHERE (SOLLWERT - ISTWERT) > 0.0</PRE><BR><BR>Resultat:<BR><BR><PRE>
    RESULTAT SOLLWERT ISTWERT
    0.15 2 1.85
    0.51 1.96 1.45
    1 10 9
    <b>0.0800000000000001</b> 1.3 1.22
    0.17 1.25 1.08
    <b>0.0799999999999998</b> 1.2 1.12
    0.05 1.85 1.8
    </PRE><BR><BR>
    Hat jemand eine <b>IDEE</b>, wie dieser <b>UNSINN !!!!</b> wegzubekommen ist. Ich hatte bisher mit anderen Applikationen keine Probleme und bei dieser Applikation Sitz nun der Wurm so tief drin, dass man fast am Rande der Verzweiflung ist.<BR><BR>MfG<BR>Adi

  • #2
    Hallo Adi,

    ich habe gerade noch einmal IB 6.01 installiert. Mit IBExpert und IBConsole kann ich Deine Ergebnisse nicht nachvollziehen. Ich erhalte korrekte Ergebnisse für Deine Beispiele.

    Mit FB1.5 gab es ebenfalls keine Probleme.

    Wie hast Du denn die Ergebnisse ermittelt. Welches Tool- bzw. Komponenten verwendest Du den?

    Tschau

    Torste

    Comment


    • #3
      Hallo,<BR><BR>
      ich habe die <b>IB-Version V6.0.1.6</b> und mit <b>IBConsole</b>. Die Felder sind statt <b>NUMERIC(9,6)</b> sind <b>DOUBLE PRECISION</b> vorhanden.<BR><BR>MfG<BR>Ad

      Comment


      • #4
        Hallo Adi,

        dann habe ich Dir die Antwort schon in dem vorhergehenden Thread gegeben.

        Tschüß

        Torste

        Comment


        • #5
          Hallo zusammen!

          Diese, deiner Meinung nach "unsinnigen" Werte kommen daher, dass bestimmte Dezimalzahlen nie exakt gespeichert werden können, da sie binär periodisch werden. Beim Zurückrechnen ins Dezimale passieren dann solche "Fehler", die allerdings keine Schwäche von Interbase, sondern ein allgemeines Problem bei der Darstellung von Fließkommazahlen im Speicher sind. Da die Genauigkeit aber enorm viel größer ist, als man sie braucht, sollte eine einfache Rundung hier ausreichen.

          Viele Grüße,
          Florian Pos

          Comment

          Working...
          X