Announcement

Collapse
No announcement yet.

Genaues Rechnen mit Fliesskomma-Zahlen

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

  • Genaues Rechnen mit Fliesskomma-Zahlen

    Hallo,

    mein Problem ist für die Profis wahrscheinlich gar keines. Ich muss in meiner Datenbank sehr oft folgende Berechnungen durchführen :
    Beispiel :
    0,51234567890121 * 1805,21 .
    Es handelt sich hier immer um Zahlen mit 14 Nachkommestellen mit denen genau gerechnet werden muss. Als Ergebnis bekomme ich einen Integer-Overflow, The Result of an Integer Operation caused the most significant bit of the result to carry.

    Versuche mit Cast schlugen fehl.

    Wer kann helfen.

  • #2
    Hallo nochmal,

    hat denn wirklich keiner eine Ahnung, wo mein Fehler liegt oder wie man dies besser lösen kann

    Comment


    • #3
      Hallo,

      wenn sich eine Rechenoperation aus mehreren Rechenschritten zusammensetzt wird bei Interbase wie auch bei Firebird intern auf den kleinst möglichen Datentyp gecastet.

      Der Einzigst mir bekannte Workaround besteht darin die gesamte Berechnung so zu verändern das immer nur ein Rechenschritt erfolgt. Die jeweiligen Ergebnisse werden dann in eigenen Variablen vom passenden Typ gepuffert.

      Also statt "x = :y * 1.15 * :z;" besser "x1 = :y * 1.15; x = x1 * :z"

      Gruß

      Torste

      Comment

      Working...
      X